From e6baafe4bbef43379f0dc376fb9a3fa4645b1126 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:45:23 +0000 Subject: [PATCH] Fix merge-gatekeeper: treat cancelled checks as pending; add fail-fast: false to python-tests - In merge-gatekeeper.yml: treat `cancelled` check conclusions as `pending` instead of `error`. A cancelled job means it was interrupted (e.g. by a manual cancel or fail-fast cascade), not that it actually failed. The gatekeeper now waits for a re-run rather than immediately blocking the PR. - In python-tests.yml: change `fail-fast: false` so that when one matrix job fails, the remaining jobs run to completion instead of being cancelled. This prevents cascade `cancelled` conclusions that would trip the gatekeeper. --- .github/workflows/merge-gatekeeper.yml | 8 +++++++- .github/workflows/python-tests.yml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/merge-gatekeeper.yml b/.github/workflows/merge-gatekeeper.yml index 52adbcb8e4..cc1f384f16 100644 --- a/.github/workflows/merge-gatekeeper.yml +++ b/.github/workflows/merge-gatekeeper.yml @@ -69,8 +69,14 @@ jobs: continue; // Skipped runs are dropped, matching the original action. } else if (r.conclusion === 'success' || r.conclusion === 'neutral') { state = 'success'; + } else if (r.conclusion === 'cancelled') { + // A cancelled run means the job was interrupted (e.g. due to + // fail-fast or a manual cancel), not that it actually failed. + // Treat it as pending so the gatekeeper waits for a re-run + // rather than blocking the PR immediately. + state = 'pending'; } else { - // cancelled | timed_out | action_required | stale | failure + // timed_out | action_required | stale | failure state = 'error'; } merged.set(r.name, { name: r.name, state }); diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index 955fc9054d..4752f59b8b 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -14,7 +14,7 @@ jobs: name: Python Tests runs-on: ${{ matrix.os }} strategy: - fail-fast: true + fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] # todo: add macos-latest when problems are resolved