From f17ca00bbb4a7b6a50801631af5e4c04d793fb5d Mon Sep 17 00:00:00 2001 From: Dirk Riemann Date: Sat, 18 Apr 2026 19:51:24 +0200 Subject: [PATCH] ci: add concurrency-cancel on push to the same PR / branch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .forgejo/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index ff81a23..e33a1c4 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -4,6 +4,13 @@ on: push: 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: test: runs-on: docker