From d251f756100b51916dcaa1368ac1d9a07e56bff1 Mon Sep 17 00:00:00 2001 From: JF Date: Sat, 22 Aug 2026 14:31:36 -0400 Subject: [PATCH] fix(ci): make Test Summary fail when any needed job did not succeed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .github/workflows/ci.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f7fee8d..98818632 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -274,12 +274,22 @@ jobs: test-summary: name: Test Summary - needs: [build-and-test, container-tests] + needs: [build-and-test, windows-python-integration, lint, container-tests] runs-on: ubuntu-latest if: always() - + steps: - name: Check test results run: | - echo "✅ CI pipeline completed" - echo "Check the test results in the build-and-test job" + echo "build-and-test: ${{ needs.build-and-test.result }}" + echo "windows-python-integration: ${{ needs.windows-python-integration.result }}" + echo "lint: ${{ needs.lint.result }}" + echo "container-tests: ${{ needs.container-tests.result }}" + if [ "${{ needs.build-and-test.result }}" != "success" ] \ + || [ "${{ needs.windows-python-integration.result }}" != "success" ] \ + || [ "${{ needs.lint.result }}" != "success" ] \ + || [ "${{ needs.container-tests.result }}" != "success" ]; then + echo "❌ One or more required jobs did not succeed" + exit 1 + fi + echo "✅ All required jobs succeeded"