From 4f4eccd9c87dd83fb3881e80486e8949c65a738d Mon Sep 17 00:00:00 2001 From: Stephan Meijer Date: Thu, 19 Feb 2026 22:14:35 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7(docker)=20add=20arm64=20support=20?= =?UTF-8?q?and=20upgrade=20CI=20workflow=20steps=20(#11)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 👷(docker) add arm64 platform support for image builds Add QEMU and Buildx setup steps to enable multi-architecture Docker image builds for both linux/amd64 and linux/arm64 platforms. Signed-off-by: Stephan Meijer * ⬆️(ci) upgrade GitHub Actions workflow steps to latest versions Update actions/setup-node from v4 to v6 and actions/cache from v4 to v5 for improved performance, security patches, and Node.js runtime compatibility. Signed-off-by: Stephan Meijer --------- Signed-off-by: Stephan Meijer --- .github/workflows/calendars-frontend.yml | 12 ++++++------ .github/workflows/calendars.yml | 2 +- .github/workflows/crowdin_download.yml | 2 +- .github/workflows/crowdin_upload.yml | 2 +- .github/workflows/docker-hub.yml | 14 ++++++++++++++ .../workflows/front-dependencies-installation.yml | 6 +++--- CHANGELOG.md | 11 +++++++++++ 7 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 CHANGELOG.md diff --git a/.github/workflows/calendars-frontend.yml b/.github/workflows/calendars-frontend.yml index 317473e..910f660 100644 --- a/.github/workflows/calendars-frontend.yml +++ b/.github/workflows/calendars-frontend.yml @@ -22,11 +22,11 @@ jobs: uses: actions/checkout@v6 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: "22.x" - name: Restore the frontend cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: "src/frontend/**/node_modules" key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }} @@ -43,12 +43,12 @@ jobs: uses: actions/checkout@v6 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: "22.x" - name: Restore the frontend cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: "src/frontend/**/node_modules" key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }} @@ -73,12 +73,12 @@ jobs: uses: actions/checkout@v6 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: "22.x" - name: Restore the frontend cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: "src/frontend/**/node_modules" key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }} diff --git a/.github/workflows/calendars.yml b/.github/workflows/calendars.yml index 9de8b6e..3b1d207 100644 --- a/.github/workflows/calendars.yml +++ b/.github/workflows/calendars.yml @@ -131,7 +131,7 @@ jobs: sudo mkdir -p /data/static - name: Restore the mail templates - uses: actions/cache@v4 + uses: actions/cache@v5 id: mail-templates with: path: "src/backend/core/templates/mail" diff --git a/.github/workflows/crowdin_download.yml b/.github/workflows/crowdin_download.yml index aa9d657..3689804 100644 --- a/.github/workflows/crowdin_download.yml +++ b/.github/workflows/crowdin_download.yml @@ -47,7 +47,7 @@ jobs: CROWDIN_BASE_PATH: "../src/" # frontend i18n - name: Restore the frontend cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: "src/frontend/**/node_modules" key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }} diff --git a/.github/workflows/crowdin_upload.yml b/.github/workflows/crowdin_upload.yml index 000ecca..cc6194d 100644 --- a/.github/workflows/crowdin_upload.yml +++ b/.github/workflows/crowdin_upload.yml @@ -40,7 +40,7 @@ jobs: DJANGO_CONFIGURATION=Build python manage.py makemessages -a --keep-pot # frontend i18n - name: Restore the frontend cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: "src/frontend/**/node_modules" key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }} diff --git a/.github/workflows/docker-hub.yml b/.github/workflows/docker-hub.yml index dc55946..120d937 100644 --- a/.github/workflows/docker-hub.yml +++ b/.github/workflows/docker-hub.yml @@ -22,6 +22,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v6 + - + name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - name: Docker meta id: meta @@ -47,6 +53,7 @@ jobs: with: context: . target: backend-production + platforms: linux/amd64,linux/arm64 build-args: DOCKER_USER=${{ env.DOCKER_USER }}:-1000 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} @@ -58,6 +65,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v6 + - + name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - name: Docker meta id: meta @@ -84,6 +97,7 @@ jobs: context: . file: ./src/frontend/Dockerfile target: frontend-production + platforms: linux/amd64,linux/arm64 build-args: DOCKER_USER=${{ env.DOCKER_USER }}:-1000 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} diff --git a/.github/workflows/front-dependencies-installation.yml b/.github/workflows/front-dependencies-installation.yml index f95153d..baecac9 100644 --- a/.github/workflows/front-dependencies-installation.yml +++ b/.github/workflows/front-dependencies-installation.yml @@ -15,14 +15,14 @@ jobs: - name: Checkout uses: actions/checkout@v6 - name: Restore the frontend cache - uses: actions/cache@v4 + uses: actions/cache@v5 id: front-node_modules with: path: "src/frontend/**/node_modules" key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }} - name: Setup Node.js if: steps.front-node_modules.outputs.cache-hit != 'true' - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ inputs.node_version }} - name: Install dependencies @@ -30,7 +30,7 @@ jobs: run: cd src/frontend/ && yarn install --frozen-lockfile - name: Cache install frontend if: steps.front-node_modules.outputs.cache-hit != 'true' - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: "src/frontend/**/node_modules" key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..236c2c5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,11 @@ +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0), +and this project adheres to +[Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +- 👷(docker) add arm64 platform support for image builds