Skip to content

ci: give every validate job a unique check context#2937

Merged
caio-pizzol merged 2 commits into
mainfrom
caio-pizzol/ci-validate-unique-names
Apr 24, 2026
Merged

ci: give every validate job a unique check context#2937
caio-pizzol merged 2 commits into
mainfrom
caio-pizzol/ci-validate-unique-names

Conversation

@caio-pizzol
Copy link
Copy Markdown
Contributor

@caio-pizzol caio-pizzol commented Apr 24, 2026

The require-ci ruleset requires one check context named validate, but 13 workflows all emit a job with that name. With duplicate check names, GitHub's required-check matching is ambiguous: any one of the 13 can satisfy the rule, so PRs can merge while most workflows are still red or not running.

This rename gives every validate job a workflow-prefixed name so each becomes its own required context, and hardens the five aggregate validators to fail on any non-success result (cancelled and skipped included, not just failure). visual-test.yml gains a merge_group trigger so its validate context can be required in the merge queue.

Scope is intentionally narrow. Path-filter skips (a workflow that doesn't match a PR's touched paths never produces a check at all) are a separate class of bug and need a gate-job pattern to fix safely. That's the follow-up. Once gates land, the ruleset can require the full set without blocking unrelated PRs.

Rollout note — ruleset must move with the merge. After this merges, no check is named validate anymore, so the current ruleset's single validate requirement matches nothing and every PR blocks on a missing check. Admin bypass is also needed to merge this PR itself (only 4 of 13 workflows trigger on .github/workflows/**). Sequence:

  1. Admin updates the ruleset to require the new unique contexts (command below).
  2. Admin bypass-merges this PR.
  3. Follow-up PR adds path-filter gates so required checks resolve on skip.

The require-ci ruleset requires one check context named "validate"
but 13 workflows all emit a job named validate. That makes the
required-check match ambiguous: any one of the 13 checks can satisfy
the rule, so PRs can merge while most workflows are still failing
or not even running.

Add a unique workflow-prefixed name: to every validate job so each
one becomes its own required context. Harden the five aggregate
validators to fail on any non-success result (cancelled and skipped
included, not just failure). Add merge_group to visual-test.yml so
its validate context can be required safely.

Companion ruleset update lives in the PR description.
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@caio-pizzol caio-pizzol enabled auto-merge (squash) April 24, 2026 16:40
@caio-pizzol caio-pizzol disabled auto-merge April 24, 2026 18:09
@caio-pizzol caio-pizzol merged commit 6e603cd into main Apr 24, 2026
25 checks passed
@caio-pizzol caio-pizzol deleted the caio-pizzol/ci-validate-unique-names branch April 24, 2026 18:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants