From 6a17d2ac3a12849399cde1ea1a1f0a3c2fe3284b Mon Sep 17 00:00:00 2001 From: David Bauer Date: Fri, 8 Sep 2023 23:39:52 +0200 Subject: [PATCH 01/10] contrib: push Docker build-container to GitHub registry (#2971) This adds a workflow to push the build-container described in Gluons Dockerfile to the freifunk-gluon organizations container registry. This will create a image - For every push to master - For every tagged version - For every PR against master Signed-off-by: David Bauer (cherry picked from commit fa8ee0399440d3781b24cec16ac1273b1aff2938) --- .github/workflows/build-container.yml | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/build-container.yml diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml new file mode 100644 index 0000000000..acca44d6ac --- /dev/null +++ b/.github/workflows/build-container.yml @@ -0,0 +1,42 @@ +# Based on the example from https://docs.github.com/en/actions/publishing-packages/publishing-docker-images +name: Create and publish a Docker image + +on: + push: + branches: + - 'master' + tags: + - 'v*' + pull_request: + branches: + - 'master' + +env: + REGISTRY: ghcr.io + IMAGE_NAME: gluon-build + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/freifunk-gluon/${{ env.IMAGE_NAME }} + - name: Build and push Docker image + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: ./contrib/docker + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From 3760d009e7d46ca316e90c3d725e5663c9e2fb5a Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sat, 16 Sep 2023 00:27:59 +0200 Subject: [PATCH 02/10] workflow: don't push Docker container on PR (#2984) The docker container on PR action is broken in case the PR is not opened within the Gluon project. Remove the build on PR so the pipeline does not fail for third party PRs. Signed-off-by: David Bauer (cherry picked from commit 9577d2fa8521af0934d7c2ff7c465e1c6668c655) --- .github/workflows/build-container.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index acca44d6ac..f1f5cb178f 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -7,9 +7,6 @@ on: - 'master' tags: - 'v*' - pull_request: - branches: - - 'master' env: REGISTRY: ghcr.io From 15042b2a541df6046bd5d2a3228e7f4e9f90bd79 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sat, 14 Oct 2023 11:39:18 +0200 Subject: [PATCH 03/10] github: limit container push action Only push the container to ghcr in case the repository is owned by the freifunk-gluon organization. THis avoids failing CI on forks. Signed-off-by: David Bauer (cherry picked from commit 26bf66b9035143ced7b11bcbf474228d44a2908e) --- .github/workflows/build-container.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index f1f5cb178f..fe94df5511 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -20,7 +20,8 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - name: Log in to the Container registry - uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + uses: docker/login-action@b4bedf8053341df3b5a9f9e0f2cf4e79e27360c6 + if: ${{ github.repository_owner == 'freifunk-gluon' }} with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -34,6 +35,6 @@ jobs: uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: context: ./contrib/docker - push: true + push: ${{ github.repository_owner == 'freifunk-gluon' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From 2629ac3c7b2b0ec1704ed2186d0dce236743b86d Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sat, 14 Oct 2023 12:33:42 +0200 Subject: [PATCH 04/10] github: build on release-branches (cherry picked from commit 737671e296d5f32428b5b76313314fe970342221) --- .github/workflows/build-container.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index fe94df5511..311ea08531 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -5,6 +5,7 @@ on: push: branches: - 'master' + - 'v202[0-9].[0-9].x' tags: - 'v*' From cd9fd19c0d5d41a56f6f1f0079a8414db84a81be Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sat, 14 Oct 2023 12:37:24 +0200 Subject: [PATCH 05/10] github: build docker-container on pull-request Also build the docker-container whan creating pull-requests. Keep the pull-request triggered builds from pushing to the container registry. Signed-off-by: David Bauer (cherry picked from commit 7ea311f0371539706ef6e5d82f52d6fe0281edfa) --- .github/workflows/build-container.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index 311ea08531..89d5bb2cf1 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -8,6 +8,7 @@ on: - 'v202[0-9].[0-9].x' tags: - 'v*' + pull_request: env: REGISTRY: ghcr.io @@ -22,7 +23,7 @@ jobs: uses: actions/checkout@v3 - name: Log in to the Container registry uses: docker/login-action@b4bedf8053341df3b5a9f9e0f2cf4e79e27360c6 - if: ${{ github.repository_owner == 'freifunk-gluon' }} + if: ${{ github.repository_owner == 'freifunk-gluon' && github.event_name == 'push' }} with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -36,6 +37,6 @@ jobs: uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: context: ./contrib/docker - push: ${{ github.repository_owner == 'freifunk-gluon' }} + push: ${{ github.repository_owner == 'freifunk-gluon' && github.event_name == 'push' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From aafc33c235b1c01166749ed47654a7e33c09a53e Mon Sep 17 00:00:00 2001 From: Tom Herbers Date: Sun, 10 Sep 2023 16:59:20 +0200 Subject: [PATCH 06/10] workflows: build-container: build images for amd64 and arm64 (cherry picked from commit c9d5fd9b6e455d90de82280464ed0c1a074ff6e9) --- .github/workflows/build-container.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index 89d5bb2cf1..2d2cafbb5d 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -20,7 +20,11 @@ jobs: permissions: write-all steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Log in to the Container registry uses: docker/login-action@b4bedf8053341df3b5a9f9e0f2cf4e79e27360c6 if: ${{ github.repository_owner == 'freifunk-gluon' && github.event_name == 'push' }} @@ -38,5 +42,6 @@ jobs: with: context: ./contrib/docker push: ${{ github.repository_owner == 'freifunk-gluon' && github.event_name == 'push' }} + platforms: linux/amd64,linux/arm64 tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From 3b9838f8a2fa749c093cf9f0aae88ccf85ba12b0 Mon Sep 17 00:00:00 2001 From: Tom Herbers Date: Mon, 27 Nov 2023 13:24:25 +0100 Subject: [PATCH 07/10] github: workflow: build-container: don't hardcode repo (cherry picked from commit 03583444651e191e3b1ebee6acb127f1e6d81c5f) --- .github/workflows/build-container.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index 2d2cafbb5d..882cea8bc4 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -12,7 +12,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: gluon-build + IMAGE_NAME: ${{ github.repository }}-build jobs: build-and-push-image: @@ -36,7 +36,7 @@ jobs: id: meta uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 with: - images: ${{ env.REGISTRY }}/freifunk-gluon/${{ env.IMAGE_NAME }} + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Build and push Docker image uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: From 5b5074c05f7c55c791d699189a14dc555a045111 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Wed, 6 Dec 2023 04:50:04 +0100 Subject: [PATCH 08/10] github: release docker container for next branch (#3086) Build and release a docker container for the next branch. Signed-off-by: David Bauer (cherry picked from commit 32256efd0b75db0447010c10098f98e5befd3e4d) --- .github/workflows/build-container.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index 882cea8bc4..634576761a 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -5,6 +5,7 @@ on: push: branches: - 'master' + - 'next' - 'v202[0-9].[0-9].x' tags: - 'v*' From ea334fbb0cc617685387b32728e5d8b8f33640ed Mon Sep 17 00:00:00 2001 From: Tom Herbers Date: Fri, 20 Feb 2026 11:27:02 +0100 Subject: [PATCH 09/10] contrib/docker/Dockerfile: switch to debian/eol --- contrib/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/Dockerfile b/contrib/docker/Dockerfile index 3a239c68a3..ab175f6df1 100644 --- a/contrib/docker/Dockerfile +++ b/contrib/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster-slim +FROM debian/eol:buster-slim ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ From c0ab7e4a5f39bb812ea5e3657c4e7f2f5393e5c4 Mon Sep 17 00:00:00 2001 From: Tom Herbers Date: Sat, 21 Feb 2026 21:42:22 +0100 Subject: [PATCH 10/10] github: workflow: build-container: backport minor changes This is what is left after cherry picking the most important PRs not made by bots. --- .github/workflows/build-container.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index 634576761a..74f932d190 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -4,7 +4,7 @@ name: Create and publish a Docker image on: push: branches: - - 'master' + - 'main' - 'next' - 'v202[0-9].[0-9].x' tags: @@ -17,17 +17,17 @@ env: jobs: build-and-push-image: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 permissions: write-all steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Log in to the Container registry - uses: docker/login-action@b4bedf8053341df3b5a9f9e0f2cf4e79e27360c6 + uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 if: ${{ github.repository_owner == 'freifunk-gluon' && github.event_name == 'push' }} with: registry: ${{ env.REGISTRY }} @@ -35,11 +35,11 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Build and push Docker image - uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 with: context: ./contrib/docker push: ${{ github.repository_owner == 'freifunk-gluon' && github.event_name == 'push' }}