From 657cc02a376d5c916568c755927bf0d884342fdd Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Fri, 28 Aug 2026 09:50:00 +0200 Subject: [PATCH] fix(ci): a push to development must reach a verdict here too .github#597 set cancel-in-progress on the shared quality.yml, but a caller-level concurrency cancels the whole run before the called workflows setting can apply -- so that fix reached only the apps that declare no concurrency of their own. Measured 2026-08-28 over push runs on development since #597 merged: caller silent 0 of 11 cancelled caller says true 7 of 13 cancelled (54%) This repo is in the second group. pull_request keeps cancelling, where superseding really is correct. --- .github/workflows/code-quality.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 11a50845..1e064458 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -114,7 +114,20 @@ concurrency: # A branch name is not a unique lane when two event types can each produce a # run for it, so the event is now always part of the key. group: quality-${{ github.head_ref || github.ref_name }}${{ github.event_name != 'pull_request' && format('-{0}', github.event_name) || '' }} - cancel-in-progress: true + + # PUSH RUNS ARE NOT CANCELLED — and this has to be said HERE, not only in the + # shared workflow. .github#597 set `cancel-in-progress` on quality.yml itself, + # but a caller's own concurrency cancels the whole run before the called + # workflow's setting can apply, so that fix reached only the apps that declare + # no concurrency of their own. Measured 2026-08-28 over push runs on + # `development` since #597: 0 of 11 cancelled where the caller was silent, 7 of + # 13 (54%) cancelled where the caller still said `true`. + # + # An integration branch needs a verdict per commit: the run being cancelled is + # the only thing that would have said whether what just landed is sound, and + # its replacement is cancelled too. `pull_request` keeps cancelling, where + # superseding really is correct. + cancel-in-progress: ${{ github.event_name != 'push' }} # Permission CEILING for the called quality pipeline. GitHub statically # validates the called workflow's declared job permissions against this