From 94e0379e5f550ae70ee297a20dafa2fd63f8b7f4 Mon Sep 17 00:00:00 2001 From: Hawkynt Date: Wed, 2 Sep 2026 16:28:41 +0200 Subject: [PATCH] * a superseded run stops holding a runner ci.yml had no concurrency group, so pushing three times to a branch queued three full matrices and ran all of them. With the runner pool as the bottleneck, the two obsolete copies are what everything else waits behind. A newer pull-request run now supersedes the older one. A push to main is deliberately not cancelled: main wants a recorded result for every commit, not only for the newest. This is the pattern the shared dotnet-ci.yml already uses. --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f705ae..96b9a67 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,13 @@ on: workflow_call: {} workflow_dispatch: {} +# Pushing three times to a branch used to queue three full matrices and run all of them. A newer +# pull-request run supersedes the older one; a push to main is not cancelled, because main wants a +# recorded result for every commit rather than only for the newest. +concurrency: + group: ci-${{ github.event_name }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: ci: uses: Hawkynt/RepositoryTemplate/.github/workflows/dotnet-ci.yml@v1