diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0021e2d86..f44fd3dff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -137,6 +137,16 @@ jobs: name: 🚀 Ready runs-on: ubuntu-latest needs: [build, eslint, gitleaks, pr-title-check, unit-test] + # Run even when a dependency fails or is skipped, so this required + # gate reports a real pass/fail instead of being auto-satisfied by + # a "skipped" status when an upstream job fails. + if: always() steps: + - name: Verify all required jobs succeeded + if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') + run: | + echo "One or more required jobs failed or were cancelled:" + echo '${{ toJSON(needs) }}' + exit 1 - name: Ready run: echo "All checks passed and the PR is ready to be merged!"