From a68d79ffbe06b865206687abfe9a268b630fc1ee Mon Sep 17 00:00:00 2001 From: egg Date: Sun, 8 Feb 2026 08:42:38 +0000 Subject: [PATCH 1/2] Treat cancelled check conclusions as non-failures The wait-for-checks step counted cancelled check runs as failures, which prevented PR finalization. This happens when autofix workflows push new commits, cancelling the previous run on the old SHA. Add 'cancelled' alongside 'skipped' and 'neutral' in the allowed conclusions list so cancelled checks don't block the pipeline. --- .github/workflows/sdlc-pipeline.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sdlc-pipeline.yml b/.github/workflows/sdlc-pipeline.yml index 4073065e7e..a89b51a370 100644 --- a/.github/workflows/sdlc-pipeline.yml +++ b/.github/workflows/sdlc-pipeline.yml @@ -588,7 +588,7 @@ jobs: total=$(echo "$external_checks" | jq 'length') completed=$(echo "$external_checks" | jq '[.[] | select(.status == "completed")] | length') - failed=$(echo "$external_checks" | jq '[.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral")] | length') + failed=$(echo "$external_checks" | jq '[.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral" and .conclusion != "cancelled")] | length') pending=$(echo "$external_checks" | jq -r '[.[] | select(.status != "completed")] | map(.name) | join(", ")') echo "Checks: ${completed}/${total} completed, ${failed} failed (elapsed: ${elapsed}s)" @@ -618,7 +618,7 @@ jobs: # All checks completed but some failed — keep waiting, autofix may push a new commit if [[ "$completed" -eq "$total" && "$failed" -gt 0 ]]; then echo "Checks completed with ${failed} failure(s) — waiting for autofix..." - echo "$external_checks" | jq -r '.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral") | " FAILED: \(.name) (\(.conclusion))"' + echo "$external_checks" | jq -r '.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral" and .conclusion != "cancelled") | " FAILED: \(.name) (\(.conclusion))"' else echo "Waiting for: ${pending}" fi From ba527837d2bb43ccfb6b03a0db0fa69463568798 Mon Sep 17 00:00:00 2001 From: "james-in-a-box[bot]" <246424927+james-in-a-box[bot]@users.noreply.github.com> Date: Sun, 8 Feb 2026 08:50:18 +0000 Subject: [PATCH 2/2] Apply cancelled check fix to reusable-review.yml for consistency Address review feedback noting that reusable-review.yml has the same pattern for counting failed checks but was not updated to exclude cancelled conclusions. This ensures consistency across all workflows. Authored-by: egg --- .github/workflows/reusable-review.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable-review.yml b/.github/workflows/reusable-review.yml index 4b37ad5ef6..ec13e959c0 100644 --- a/.github/workflows/reusable-review.yml +++ b/.github/workflows/reusable-review.yml @@ -136,14 +136,14 @@ jobs: no_checks_count=0 completed=$(echo "$checks" | jq '[.[] | select(.status == "completed")] | length') - failed=$(echo "$checks" | jq '[.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral")] | length') + failed=$(echo "$checks" | jq '[.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral" and .conclusion != "cancelled")] | length') echo "Checks: ${completed}/${total} completed, ${failed} failed" if [[ "$completed" -eq "$total" ]]; then if [[ "$failed" -gt 0 ]]; then echo "::warning::${failed} check(s) failed — skipping review" - echo "$checks" | jq -r '.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral") | " FAILED: \(.name) (\(.conclusion))"' + echo "$checks" | jq -r '.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral" and .conclusion != "cancelled") | " FAILED: \(.name) (\(.conclusion))"' echo "passed=false" >> "$GITHUB_OUTPUT" else echo "All ${total} checks passed"