Skip to content

ci: gate merging on a single Release Validation summary job#774

Closed
elijahbenizzy wants to merge 1 commit into
mainfrom
ci/drop-release-validation-from-required-checks
Closed

ci: gate merging on a single Release Validation summary job#774
elijahbenizzy wants to merge 1 commit into
mainfrom
ci/drop-release-validation-from-required-checks

Conversation

@elijahbenizzy
Copy link
Copy Markdown
Contributor

@elijahbenizzy elijahbenizzy commented May 11, 2026

Summary

Replaces the two matrix-suffixed required checks (Release Validation / build-artifacts, Release Validation / install-and-smoke (3.12)) with a single new required check: Release Validation / summary.

The new summary job sits at the end of release-validation.yml, depends on all the other jobs, and runs with if: always(). It translates upstream job conclusions into one binary verdict:

Upstream build-artifacts Upstream install-and-smoke Summary verdict
success success ✓ pass
skipped (path-filtered docs PR) skipped (path-filtered docs PR) ✓ pass
failure * ✗ fail
* failure ✗ fail

Because the summary job is the only required check, branch protection cares only about that single stable name.

Why this is needed

PRs touching only docs/ or website/ (like #771) were stuck in BLOCKED state. The path filter intentionally skips the heavy validation jobs, but GitHub treats SKIPPED as non-passing for required-status-checks. Commit a655edf2 tried to fix it by adding the check-paths gate; that didn't work because SKIPPED is still SKIPPED.

The if: always() summary job sidesteps the ambiguity — it always produces a definite SUCCESS or FAILURE, never SKIPPED. So branch protection has a stable signal regardless of upstream skip semantics.

What this preserves

Real code PRs still get gated. If build-artifacts or install-and-smoke fails, the summary fails, and the merge button stays disabled.

Test plan

The Release Validation workflow still runs on every PR (and on
release-candidate tag pushes) so failures show up in the checks
UI, but it no longer gates merging.

This unblocks docs/website-only PRs (like #771) that were stuck
in BLOCKED state because GitHub's branch protection treats the
path-filtered SKIPPED jobs as non-passing, even though Stefan's
prior fix in a655edf intended SKIPPED to satisfy the requirement.

Trade-off: a code PR can technically be merged with Release
Validation failing, but the red X is highly visible in the PR UI,
and the workflow still runs on every push to main and on RC tags.
@elijahbenizzy
Copy link
Copy Markdown
Contributor Author

Going with the soft-pass pattern in the workflow instead — keeps release-validation as a required check and just no-ops cleanly on path-filtered PRs. Replacement coming in a moment.

@elijahbenizzy elijahbenizzy changed the title ci: drop release-validation from required status checks ci: gate merging on a single Release Validation summary job May 11, 2026
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.

1 participant