10 Commits

Author SHA1 Message Date
lyrathorpe c5433a23ee Merge pull request 'ci: filter main builds to code changes and cancel superseded runs' (#18) from ci/optimise-main-builds into main
Reviewed-on: #18
2026-06-12 12:42:29 +01:00
Emma Thorpe fb705c234f ci: filter main builds to code changes and cancel superseded runs
Build and publish container / build (pull_request) Successful in 1m35s
Apply path filters to the push (merge-to-main) trigger only, so merges that
do not change the image (CI/Renovate config, docs) skip the build and release.
Pull requests keep running unfiltered so the required check is always reported.

Add a concurrency group keyed by ref with cancel-in-progress, so a newer run
supersedes an older in-flight run: a fresh merge to main cancels the previous
build and only the most recent release is produced, avoiding tags that would
be immediately replaced.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 12:39:56 +01:00
lyrathorpe 562ce29ca1 Merge pull request 'fix(deps): update docker/setup-qemu-action action to v4' (#17) from renovate/docker-setup-qemu-action-4.x into main
Build and publish container / build (push) Failing after 5m57s
Reviewed-on: #17
2026-06-12 12:26:35 +01:00
lyrathorpe 1c57d70c00 Merge pull request 'fix(deps): update docker/setup-buildx-action action to v4' (#16) from renovate/docker-setup-buildx-action-4.x into main
Build and publish container / build (push) Failing after 6m6s
Reviewed-on: #16
2026-06-12 12:26:05 +01:00
lyrathorpe 7e23b09694 Merge pull request 'fix(deps): update docker/login-action action to v4' (#11) from renovate/docker-login-action-4.x into main
Build and publish container / build (push) Failing after 8m16s
Reviewed-on: #11
2026-06-12 12:21:38 +01:00
lyrathorpe 818331b066 Merge pull request 'fix(deps): update docker/build-push-action action to v7' (#10) from renovate/docker-build-push-action-7.x into main
Build and publish container / build (push) Failing after 34s
Reviewed-on: #10
2026-06-12 12:21:38 +01:00
Renovate Bot 0c38161989 fix(deps): update docker/setup-qemu-action action to v4
Build and publish container / build (pull_request) Successful in 7m37s
2026-06-12 11:11:04 +00:00
Renovate Bot d97707387d fix(deps): update docker/setup-buildx-action action to v4
Build and publish container / build (pull_request) Successful in 7m33s
2026-06-12 11:11:00 +00:00
Renovate Bot b26d49d9d8 fix(deps): update docker/login-action action to v4
Build and publish container / build (pull_request) Successful in 7m27s
2026-06-12 11:10:57 +00:00
Renovate Bot 9e5958b458 fix(deps): update docker/build-push-action action to v7
Build and publish container / build (pull_request) Successful in 7m28s
2026-06-12 11:10:53 +00:00
+24 -4
View File
@@ -1,10 +1,30 @@
name: Build and publish container name: Build and publish container
on: on:
# On merge to main, only build/release when image-affecting files change;
# CI-config, Renovate-config and docs changes do not produce a new image.
push: push:
branches: [main] branches: [main]
paths:
- 'Dockerfile'
- 'default.conf'
- 'index.html'
- 'styles.css'
- 'script.js'
- 'messages.js'
- '.dockerignore'
# Pull requests always run (the build is a required check); no path filter.
pull_request: pull_request:
branches: [main] branches: [main]
workflow_dispatch:
# A newer run cancels an older in-flight run in the same group (keyed by ref),
# so a fresh merge to main supersedes the previous build and only the latest
# release is produced, avoiding tags that would be immediately replaced. Each
# pull request likewise supersedes only its own earlier runs.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults: defaults:
run: run:
@@ -94,21 +114,21 @@ jobs:
echo "Computed bump=${bump}, release=${release}, base=${base}" echo "Computed bump=${bump}, release=${release}, base=${base}"
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3 uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4
- name: Set up Buildx - name: Set up Buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4
- name: Log in to the Gitea container registry - name: Log in to the Gitea container registry
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3 uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4
with: with:
registry: ${{ env.REGISTRY }} registry: ${{ env.REGISTRY }}
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.PACKAGES_TOKEN }} password: ${{ secrets.PACKAGES_TOKEN }}
- name: Build and push - name: Build and push
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6 uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7
with: with:
context: . context: .
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64