From 7628d165d8adb2851765af6201e9f4c2689f90b2 Mon Sep 17 00:00:00 2001 From: Taylor Addison Date: Sat, 24 Oct 2026 11:55:53 -0400 Subject: [PATCH] ci: the ci-ok job runs unless the run was cancelled (if: !cancelled()) (#111) always() also ran it on a run that concurrency cancel-in-progress had cancelled, and it failed on the cancelled jobs: a red check for a commit nobody was judging any more (taylab-launch-kit v1.40.4). It still runs when a job fails or times out. (cherry picked from commit 56cb295987f7616072cbc52a5b82cef8257125d1) Ported to main from develop: main's ci-ok gate still used always(), and 18 of the 25 ci-ok failures 10-11..10-21 were runs that cancel-in-progress had cancelled. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019jHjgRysB6GajV3oDppruf --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f230f66..d8c6b7f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -182,7 +182,10 @@ jobs: # Without this the gate inherits the default "only if every dependency # succeeded", which makes a skipped suite skip the gate -- and a skipped # required check never reports, which is the exact bug being fixed. - if: always() + # !cancelled(), not always(): a run that cancel-in-progress superseded has no + # verdict to give, and always() failed the gate on its cancelled jobs (kit v1.40.4). + # It still runs when a job fails or times out. + if: ${{ !cancelled() }} runs-on: ubuntu-latest steps: - name: Every suite green or skipped