Skip to content

fix(ci): make Test Summary fail when any needed job did not succeed - #427

Merged
debugmcpdev merged 1 commit into
mainfrom
fix/419-test-summary-gate
Aug 22, 2026
Merged

fix(ci): make Test Summary fail when any needed job did not succeed#427
debugmcpdev merged 1 commit into
mainfrom
fix/419-test-summary-gate

Conversation

@debugmcpdev

Copy link
Copy Markdown
Collaborator

Fixes #419

What

The test-summary job ran with if: always() and unconditionally echoed "✅ CI pipeline completed", so the job showed green even when build-and-test or container-tests failed — observed in practice on the PR #392/#393 container-build failures. It also only depended on 2 of the 4 real jobs in the workflow.

Change

  • needs expanded to all four jobs: build-and-test, windows-python-integration, lint, container-tests (previously omitted lint and windows-python-integration — a summary that ignores half the workflow isn't a summary).
  • The step now echoes each needs.*.result and exits non-zero unless every result is success. This also fails on cancelled/skipped, which is correct here: no job in this workflow is conditionally skipped by design, so a non-success result always means the pipeline did not fully pass.
  • if: always() is kept so the job still runs on failure and names which job failed.

Note for branch protection

With this change Test Summary becomes a meaningful single required-check candidate: it now transitively covers every job in ci.yml. SUPPLY-CHAIN-SECURITY.md already lists it among the required checks, while actual branch protection currently requires only ubuntu Build and Test + Lint Code — worth aligning whenever convenient.

🤖 Generated with Claude Code

The test-summary job ran with `if: always()` and unconditionally echoed
success, so it showed green even when build-and-test or container-tests
failed (seen on the PR #392/#393 container-build failures). It also only
depended on 2 of the 4 real jobs in the workflow.

Now it needs all four jobs (build-and-test, windows-python-integration,
lint, container-tests), echoes each result, and exits non-zero unless
every one is `success` — which also correctly fails on cancelled or
skipped, since no job in this workflow is conditionally skipped by
design. `if: always()` is kept so the job still runs and names the
failure.

Fixes #419

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Aug 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@debugmcpdev
debugmcpdev merged commit a12c807 into main Aug 22, 2026
10 checks passed
@debugmcpdev
debugmcpdev deleted the fix/419-test-summary-gate branch August 22, 2026 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: Test Summary job succeeds even when required jobs fail

2 participants