Skip to content

ci: add a stable ci-gate check for the ruleset to require - #6

Merged
StoneyJackson merged 1 commit into
mainfrom
ci/add-ci-gate
Jul 27, 2026
Merged

ci: add a stable ci-gate check for the ruleset to require#6
StoneyJackson merged 1 commit into
mainfrom
ci/add-ci-gate

Conversation

@StoneyJackson

Copy link
Copy Markdown
Member

Requiring job names directly is brittle. Adding a matrix renames a check from build to build (x) and a new job is simply never required — either way the ruleset waits on a name nothing reports and the PR hangs on "Expected", with no failing check to point at. That has now happened twice across the two repos.

ci-gate's name never changes, so jobs can be added, renamed, or given a matrix without touching the ruleset. It runs with if: always(), without which it would itself be skipped whenever a dependency failed, report nothing, and reproduce exactly the hang it exists to prevent.

Any result other than success blocks — including skipped, which is what test-feature and build become when changes fails.

comment is excluded on purpose: it only advertises image tags, needs pull-requests: write which fork PRs do not get, and must never block a merge.

Requiring job names directly is brittle. Adding a matrix renames a check
from `build` to `build (x)` and a new job is simply never required —
either way the ruleset waits on a name nothing reports and the PR hangs
on "Expected", with no failing check to point at. That has now happened
twice across the two repos.

ci-gate's name never changes, so jobs can be added, renamed, or given a
matrix without touching the ruleset. It runs with `if: always()`, without
which it would itself be skipped whenever a dependency failed, report
nothing, and reproduce exactly the hang it exists to prevent.

Any result other than success blocks — including skipped, which is what
test-feature and build become when `changes` fails.

`comment` is excluded on purpose: it only advertises image tags, needs
pull-requests: write which fork PRs do not get, and must never block a
merge.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 27, 2026 17:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a stable “ci-gate” GitHub Actions job intended to be the single required ruleset check, avoiding brittle required-check names that can change (e.g., due to matrix expansion) and preventing PRs from hanging on “Expected” when a required check name is never reported.

Changes:

  • Add a new ci-gate job that depends on changes, test-feature, and build, and runs with if: always() to report a deterministic pass/fail outcome.
  • Fail the gate for any upstream job result other than success (including skipped, cancelled, and failure).
  • Document why comment is excluded from the required gate.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yml
- name: Require all CI jobs to have succeeded
env:
CHANGES: ${{ needs.changes.result }}
TEST_FEATURE: ${{ needs.test-feature.result }}
@github-actions

Copy link
Copy Markdown
Contributor

🐳 PR images built (amd64 only):

  • ghcr.io/ourplcc/devcontainers/plcc-ng:pr-6
  • ghcr.io/ourplcc/devcontainers/plcc-ng-full:pr-6

To test, point a devcontainer.json image at one of these tags.

@StoneyJackson
StoneyJackson merged commit 3133d6a into main Jul 27, 2026
7 checks passed
@StoneyJackson
StoneyJackson deleted the ci/add-ci-gate branch July 27, 2026 17:31
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.

2 participants