Repository navigation
ci: add required-ci gate job - #209
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rx13DJRnFBvVNh1ioMMXsQ
There was a problem hiding this comment.
Looks good, straightforward CI config change.
What was reviewed: the new required-ci job's needs/if: always() logic and its failure condition (contains(needs.*.result, 'failure' | 'cancelled')); confirmed it only fails when the test job itself failed or was cancelled, so it adds no new failure mode when reused via workflow_call from release.yml. Checked release.yml's uses: ./.github/workflows/test.yml call — required-ci becomes part of that reusable workflow but only fails release when test itself would already have failed it, so this is not an added risk.
Extended reasoning...
Single-commit, single-file change adding a required-ci aggregator job to test.yml, a common branch-protection pattern (mirrors electron/forge per the PR description). No security-sensitive surface (no secrets, permissions stay contents: read, no new external actions). Verified the one candidate concern already flagged (required-ci also gating the release.yml reusable-workflow call) is logically inert since required-ci's failure condition is a strict subset of the underlying test job's own failure, so it does not add a new blocking path. CODEOWNERS is a repo-wide team wildcard, not a named individual gate. Change is small, mechanical, and follows an established pattern with no ambiguity.
|
🎉 This PR is included in version 3.0.3 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Requested by Samuel Attard · Slack thread
This adds a single
required-cijob to the Test workflow that depends on thetestjob and fails if it failed or was cancelled, so branch protection can require one stable check name instead of each matrix leg, matching electron/forge. Branch protection or the ruleset needs updating separately to require it.🤖 Generated with Claude Code
https://claude.ai/code/session_01Rx13DJRnFBvVNh1ioMMXsQ
Generated by Claude Code