diff --git a/.github/workflows/charterafrica-deploy-dev.yml b/.github/workflows/charterafrica-deploy-dev.yml
index a30ea8f95..f65d78ada 100644
--- a/.github/workflows/charterafrica-deploy-dev.yml
+++ b/.github/workflows/charterafrica-deploy-dev.yml
@@ -24,19 +24,19 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
key: ${{ runner.os }}-buildx-${{ github.sha }}
path: /tmp/.buildx-cache
@@ -44,13 +44,13 @@ jobs:
${{ runner.os }}-buildx-
- name: Login to DockerHub
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
username: ${{ secrets.DOCKER_HUB_USERNAME }}
- name: Build Docker image
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
build-args: |
MONGO_URL=${{ secrets.CHARTERAFRICA_MONGO_URL }}
diff --git a/.github/workflows/charterafrica-deploy-prod.yml b/.github/workflows/charterafrica-deploy-prod.yml
index 8b4f4e361..4ea12115c 100644
--- a/.github/workflows/charterafrica-deploy-prod.yml
+++ b/.github/workflows/charterafrica-deploy-prod.yml
@@ -22,18 +22,18 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
# Set up Node since it's required by version-check
# https://github.com/EndBug/version-check#github-workflow
- name: Setup Node.js
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
@@ -53,15 +53,15 @@ jobs:
# https://github.com/docker/setup-qemu-action
- name: Setup up QEMU
if: steps.version-check.outputs.changed == 'true'
- uses: docker/setup-qemu-action@v2
+ uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
if: steps.version-check.outputs.changed == 'true'
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
if: steps.version-check.outputs.changed == 'true'
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
key: ${{ runner.os }}-buildx-${{ github.sha }}
path: /tmp/.buildx-cache
@@ -70,14 +70,14 @@ jobs:
- name: Login to DockerHub
if: steps.version-check.outputs.changed == 'true'
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
username: ${{ secrets.DOCKER_HUB_USERNAME }}
- name: Build Docker image
if: steps.version-check.outputs.changed == 'true'
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
build-args: |
MONGO_URL=${{ secrets.CHARTERAFRICA_MONGO_URL }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 40db75f34..e4b3b3736 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -25,20 +25,19 @@ jobs:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 2
# https://github.com/pnpm/action-setup#use-cache-to-reduce-installation-time
- name: Install pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v4
id: pnpm-install
with:
- version: 8
run_install: false
- name: Get pnpm store directory
@@ -48,7 +47,7 @@ jobs:
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
@@ -58,7 +57,7 @@ jobs:
# Looks like to use pnpm cache, setup-node must run after pnpm/action-setup
# https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-data
- name: Install Node.js
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"
diff --git a/.github/workflows/codeforafrica-deploy-dev-app.yml b/.github/workflows/codeforafrica-deploy-dev-app.yml
index 3d9c46d8e..4d0cf3729 100644
--- a/.github/workflows/codeforafrica-deploy-dev-app.yml
+++ b/.github/workflows/codeforafrica-deploy-dev-app.yml
@@ -25,19 +25,19 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
steps:
- name: Cloning repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
key: ${{ runner.os }}-buildx-${{ github.sha }}
path: /tmp/.buildx-cache
@@ -45,13 +45,13 @@ jobs:
${{ runner.os }}-buildx-
- name: Login to DockerHub
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
username: ${{ secrets.DOCKER_HUB_USERNAME }}
- name: Build Docker image
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
build-args: |
MONGODB_URL=${{ secrets.CODEFORAFRICA_MONGO_URL }}/${{ env.APP_NAME }}
diff --git a/.github/workflows/codeforafrica-deploy-prod.yml b/.github/workflows/codeforafrica-deploy-prod.yml
index d491ca143..02c4b859a 100644
--- a/.github/workflows/codeforafrica-deploy-prod.yml
+++ b/.github/workflows/codeforafrica-deploy-prod.yml
@@ -23,18 +23,18 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
# Set up Node since it's required by version-check
# https://github.com/EndBug/version-check#github-workflow
- name: Setup Node.js
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
@@ -52,11 +52,11 @@ jobs:
- name: Set up Docker Buildx
if: steps.version-check.outputs.changed == 'true'
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
if: steps.version-check.outputs.changed == 'true'
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
key: ${{ runner.os }}-buildx-${{ github.sha }}
path: /tmp/.buildx-cache
@@ -65,14 +65,14 @@ jobs:
- name: Login to DockerHub
if: steps.version-check.outputs.changed == 'true'
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
username: ${{ secrets.DOCKER_HUB_USERNAME }}
- name: Build Docker image
if: steps.version-check.outputs.changed == 'true'
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
build-args: |
MONGODB_URL=${{ secrets.CODEFORAFRICA_MONGODB_URL }}
diff --git a/.github/workflows/codeforafrica-deploy-review-app.yml b/.github/workflows/codeforafrica-deploy-review-app.yml
index d1371fb7d..5e96193c2 100644
--- a/.github/workflows/codeforafrica-deploy-review-app.yml
+++ b/.github/workflows/codeforafrica-deploy-review-app.yml
@@ -24,20 +24,20 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
if: github.event_name == 'pull_request' && github.event.action != 'closed'
steps:
- name: Cloning repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
key: ${{ runner.os }}-buildx-${{ github.sha }}
path: /tmp/.buildx-cache
@@ -45,13 +45,13 @@ jobs:
${{ runner.os }}-buildx-
- name: Login to DockerHub
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
username: ${{ secrets.DOCKER_HUB_USERNAME }}
- name: Build Docker image
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
build-args: |
MONGODB_URL=${{ secrets.CODEFORAFRICA_MONGO_URL }}/${{ env.APP_NAME }}
diff --git a/.github/workflows/dependabot_lint_format.yml b/.github/workflows/dependabot_lint_format.yml
index 3e8090e6a..94b786044 100644
--- a/.github/workflows/dependabot_lint_format.yml
+++ b/.github/workflows/dependabot_lint_format.yml
@@ -13,21 +13,20 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
# https://github.com/pnpm/action-setup#use-cache-to-reduce-installation-time
- name: Install pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v4
id: pnpm-install
with:
- version: 8
run_install: false
- name: Get pnpm store directory
@@ -37,7 +36,7 @@ jobs:
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
@@ -47,7 +46,7 @@ jobs:
# Looks like to use pnpm cache, setup-node must run after pnpm/action-setup
# https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-data
- name: Install Node.js
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"
diff --git a/.github/workflows/pesayetu-deploy-dev.yml b/.github/workflows/pesayetu-deploy-dev.yml
index 835044934..936f57a7b 100644
--- a/.github/workflows/pesayetu-deploy-dev.yml
+++ b/.github/workflows/pesayetu-deploy-dev.yml
@@ -25,19 +25,19 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
steps:
- name: Cloning repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
key: ${{ runner.os }}-buildx-${{ github.sha }}
path: /tmp/.buildx-cache
@@ -45,13 +45,13 @@ jobs:
${{ runner.os }}-buildx-
- name: Login to DockerHub
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
username: ${{ secrets.DOCKER_HUB_USERNAME }}
- name: Build Docker image
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
build-args: |
WORDPRESS_URL=${{ secrets.PESAYETU_WORDPRESS_URL }}
diff --git a/.github/workflows/release-prod.yml b/.github/workflows/release-prod.yml
index 3593c7193..367be76cf 100644
--- a/.github/workflows/release-prod.yml
+++ b/.github/workflows/release-prod.yml
@@ -15,20 +15,19 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 2
# https://github.com/pnpm/action-setup#use-cache-to-reduce-installation-time
- name: Install pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v4
id: pnpm-install
with:
- version: 8
run_install: false
- name: Get pnpm store directory
@@ -38,7 +37,7 @@ jobs:
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
@@ -48,7 +47,7 @@ jobs:
# Looks like to use pnpm cache, setup-node must run after pnpm/action-setup
# https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-data
- name: Install Node.js
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"
diff --git a/.github/workflows/vpnmanager-deploy-dev.yml b/.github/workflows/vpnmanager-deploy-dev.yml
index 147096c8a..67040832e 100644
--- a/.github/workflows/vpnmanager-deploy-dev.yml
+++ b/.github/workflows/vpnmanager-deploy-dev.yml
@@ -23,19 +23,19 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- node-version: [18]
+ node-version: [20.14]
os: [ubuntu-latest]
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
key: ${{ runner.os }}-buildx-${{ github.sha }}
path: /tmp/.buildx-cache
@@ -43,13 +43,13 @@ jobs:
${{ runner.os }}-buildx-
- name: Login to DockerHub
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
username: ${{ secrets.DOCKER_HUB_USERNAME }}
- name: Build Docker image
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
build-args: |
SENTRY_DSN=${{ secrets.VPNMANAGER_SENTRY_DSN }}
diff --git a/.prettierignore b/.prettierignore
index 7bb2fb9db..34fdc404e 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -3,5 +3,8 @@ build
dist
node_modules
+# Auto-generated files
+pnpm-lock.yaml
+
# AGA infographic
apps/charterafrica/public/infographic
diff --git a/Dockerfile b/Dockerfile
index fd00ed64f..bdb0b17a9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:18-alpine as node-alpine
+FROM node:20.14-alpine as node-alpine
# Always install security updated e.g. https://pythonspeed.com/articles/security-updates-in-docker/
# Update local cache so that other stages don't need to update cache
@@ -11,7 +11,7 @@ FROM node-alpine as base
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
-ARG PNPM_VERSION=8.5.0
+ARG PNPM_VERSION=9.1.4
RUN corepack enable && corepack prepare pnpm@${PNPM_VERSION} --activate
diff --git a/Dockerfile.charterafrica b/Dockerfile.charterafrica
index ec49f44b8..a60949df6 100644
--- a/Dockerfile.charterafrica
+++ b/Dockerfile.charterafrica
@@ -1,4 +1,4 @@
-FROM node:18-alpine as node-alpine
+FROM node:20.14-alpine as node-alpine
# Always install security updated e.g. https://pythonspeed.com/articles/security-updates-in-docker/
# Update local cache so that other stages don't need to update cache
@@ -11,7 +11,7 @@ FROM node-alpine as base
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
-ARG PNPM_VERSION=8.5.0
+ARG PNPM_VERSION=9.1.4
RUN corepack enable && corepack prepare pnpm@${PNPM_VERSION} --activate
diff --git a/Dockerfile.codeforafrica b/Dockerfile.codeforafrica
index 9ae89ad8f..9d821d615 100644
--- a/Dockerfile.codeforafrica
+++ b/Dockerfile.codeforafrica
@@ -1,4 +1,4 @@
-FROM node:18-alpine as node-alpine
+FROM node:20.14-alpine as node-alpine
RUN apk update \
&& apk upgrade
@@ -8,7 +8,7 @@ FROM node-alpine as base
RUN apk add --no-cache libc6-compat
-ARG PNPM_VERSION=8.5.0
+ARG PNPM_VERSION=9.1.4
RUN corepack enable && corepack prepare pnpm@${PNPM_VERSION} --activate
diff --git a/Dockerfile.pesayetu b/Dockerfile.pesayetu
index c6e71c03b..9625bcd8c 100644
--- a/Dockerfile.pesayetu
+++ b/Dockerfile.pesayetu
@@ -1,4 +1,4 @@
-FROM node:18.20.3-alpine as node
+FROM node:20.14-alpine as node
# Always install security updated e.g. https://pythonspeed.com/articles/security-updates-in-docker/
# Update local cache so that other stages don't need to update cache
@@ -22,7 +22,7 @@ WORKDIR /workspace
# ===================================================
FROM base as pnpm-base
-ARG PNPM_VERSION=8.5.0
+ARG PNPM_VERSION=9.1.4
RUN corepack enable && corepack prepare pnpm@${PNPM_VERSION} --activate
diff --git a/Dockerfile.vpnmanager b/Dockerfile.vpnmanager
index 31ba72d4c..66a7f1fbb 100644
--- a/Dockerfile.vpnmanager
+++ b/Dockerfile.vpnmanager
@@ -1,4 +1,4 @@
-FROM node:18-alpine as node-alpine
+FROM node:20.14-alpine as node-alpine
# Always install security updated e.g. https://pythonspeed.com/articles/security-updates-in-docker/
# Update local cache so that other stages don't need to update cache
@@ -10,7 +10,7 @@ FROM node-alpine as base
RUN apk add --no-cache libc6-compat
-ARG PNPM_VERSION=8.5.0
+ARG PNPM_VERSION=9.1.4
RUN corepack enable && corepack prepare pnpm@${PNPM_VERSION} --activate
diff --git a/Makefile b/Makefile
index 0c0d1b0e9..a5caad6fa 100644
--- a/Makefile
+++ b/Makefile
@@ -1,19 +1,22 @@
# Makefile
-.PHONY: charterafrica mongodb mongodb-keyfile vpnmanager
+COMPOSE=docker compose
+COMPOSE_BUILD_ENV=BUILDKIT_PROGRESS=plain
+
+.PHONY: charterafrica codeforafrica mongodb mongodb-keyfile vpnmanager
charterafrica:
- docker compose --env-file apps/charterafrica/.env.local up charterafrica --build -d
+ $(COMPOSE_BUILD_ENV) $(COMPOSE) --env-file apps/charterafrica/.env.local up charterafrica --build -d
vpnmanager:
- docker compose --env-file apps/vpnmanager/.env.local up vpnmanager --build -d
+ $(COMPOSE_BUILD_ENV) $(COMPOSE) --env-file apps/vpnmanager/.env.local up vpnmanager --build -d
mongodb:
- docker compose --env-file apps/charterafrica/.env.local up --wait mongodb
+ $(COMPOSE_BUILD_ENV) $(COMPOSE) --env-file apps/charterafrica/.env.local up --wait mongodb
mongodb-keyfile:
openssl rand -base64 741 > ./mongo-keyfile
chmod 600 ./mongo-keyfile
-
+
pesayetu:
- BUILDKIT_PROGRESS=plain docker compose --env-file apps/pesayetu/.env.local up pesayetu --build
+ $(COMPOSE_BUILD_ENV) $(COMPOSE) --env-file apps/pesayetu/.env.local up pesayetu --build
diff --git a/apps/charterafrica/package.json b/apps/charterafrica/package.json
index 7faba2a31..8f68689f2 100644
--- a/apps/charterafrica/package.json
+++ b/apps/charterafrica/package.json
@@ -111,6 +111,6 @@
"webpack": "^5.89.0"
},
"engines": {
- "node": "18.x"
+ "node": "20.x"
}
}
diff --git a/apps/charterafrica/src/components/Accordion/Accordion.snap.js b/apps/charterafrica/src/components/Accordion/Accordion.snap.js
index a5f08bf4b..b7e3138cd 100644
--- a/apps/charterafrica/src/components/Accordion/Accordion.snap.js
+++ b/apps/charterafrica/src/components/Accordion/Accordion.snap.js
@@ -3,7 +3,7 @@
exports[`