ci: add concurrency-cancel on push to the same PR / branch
Some checks failed
tests / test (pull_request) Successful in 1m9s
tests / test (push) Failing after 11m18s

Forgejo runner runs with `capacity: 1` (one job at a time across every
repo it serves — mammon, infoxtractor, etc.). Without a concurrency
block, rapid-fire pushes to the same PR branch all queue behind any
task already running, burning the runner for 30+ min on stale commits.

`concurrency: { group: ci-$ref, cancel-in-progress: true }` tells
Forgejo to cancel any still-queued or still-running CI on this ref as
soon as a newer commit shows up. Applies to both push and
pull_request events.

(Previous PR bodies noted a "trigger bug" where I saw no CI response
on a push — that was actually just the capacity=1 queue with no visible
signal; the CI always fired, just minutes later. Runner capacity bump
lives in infrastructure, not this repo.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dirk Riemann 2026-04-18 19:51:24 +02:00
parent ce33aff174
commit f17ca00bbb

View file

@ -4,6 +4,13 @@ on:
push: push:
pull_request: pull_request:
# Cancel any running CI for the same PR or branch when a new commit
# lands. The shared runner has capacity=1, so stacking obsolete runs
# just pushes useful ones to the back of the queue.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs: jobs:
test: test:
runs-on: docker runs-on: docker