diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0927ff4..38f82da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -90,3 +90,24 @@ jobs: - name: 'Run integration tests' run: cargo test --locked -p http_canister -p json_rpc_canister + + # Single aggregator status check. Configure GitHub branch protection + # to require `checks-pass` so that any failing, cancelled, or skipped + # upstream job blocks the merge, without having to enumerate every + # individual job in the ruleset. + checks-pass: + # Always run this job! + if: always() + needs: + [ + lint, + cargo-doc, + unit-tests, + integration-tests, + ] + runs-on: ubuntu-latest + steps: + - run: | + if [[ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }}" == "true" ]]; then + exit 1 + fi