Skip to content

ci: post Release PR Gate after tests via a shared action - #509

Merged
imantsk merged 1 commit into
corefrom
ci/release-pr-gate/core
Sep 1, 2026
Merged

ci: post Release PR Gate after tests via a shared action#509
imantsk merged 1 commit into
corefrom
ci/release-pr-gate/core

Conversation

@imantsk

@imantsk imantsk commented Sep 1, 2026

Copy link
Copy Markdown
Member

Reworks the Release PR Gate so it runs after the test suites instead of racing them, which is why the gate could show red before the tests had a chance to finish.

How it works

  • New composite action .github/actions/release-gate posts a Release PR Gate commit status, and applies only to release/v*/* pull requests.
  • It is called from a release-gate job in each test workflow (lint, phpunit, playwright), each gated on its own suite concluding. The action reads the three summary results:
    • any still running → defers, posts nothing (only the last suite to finish posts the verdict, so the status never flaps red mid-run);
    • any failed → failure ("CI checks not all passing");
    • all green → validates the base branch and both release-verification checkboxes, then posts success, or failure with the reason.
  • A release PR without the run-tests label is flagged (failure, "add the run-tests label"), since the suites do not run without it.
  • merge-gate.yml is slimmed to a thin re-evaluator on edited/labeled/unlabeled events, so ticking a checkbox or changing a label re-posts the status without a re-push. It also defers while tests run, so it no longer races them.

Non-release pull requests are unaffected: the gate posts nothing for them.

Note: merge-gate.yml is kept (slimmed) rather than deleted, because the checkbox approval is a pull_request: edited event that the test workflows do not run on; a trigger is still needed to re-evaluate the gate when a box is ticked.

Replace the racing merge gate with a composite action that posts a
"Release PR Gate" commit status. It runs after each test suite concludes
(release-gate jobs in lint, phpunit and playwright, for release/v*/* PRs)
and defers while any required suite is still running, so only the last
suite posts the verdict and the status never flaps red mid-run. A
release PR without the run-tests label is flagged. merge-gate.yml is
slimmed to re-evaluate the gate on checkbox and label edits.
@imantsk
imantsk merged commit b92e7ae into core Sep 1, 2026
10 checks passed
@imantsk
imantsk deleted the ci/release-pr-gate/core branch September 1, 2026 11:08
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