Repository navigation
ci: run every required workflow on merge_group; review every PR base - #1412
Merged
Merged
Conversation
Adds merge_group to Python CI, Packages, Secret Scan, Dependency Review, CodeQL and Platform manifest, so each required check (gitleaks, dependency-review, Analyze (python), run-ci (ubuntu-latest, 3.12), packages-gate) reports for a merge queue group. - Packages and desktop-build scope a group like a push to main: they diff the group's head against merge_group.base_sha and run the full matrix for the packages it touches. The Desktop build classifier treats merge_group as push. - dependency-review compares the group's base and head explicitly, since a group has no pull request in its payload. - dependency-review and CodeQL drop `branches: [main]` on pull_request, so a stacked PR reaches main with both checks already reported (#1358). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A merge queue only works if every required check reports on
merge_groupevents; otherwise each group waits forever. Batching (up to 5 PRs per group) turns 5 serial "update branch, rerun everything, merge" cycles into one tested group.Separately, dependency-review and CodeQL ran only on PRs into
main. Stacked PRs therefore reachedmainwithout those required checks and showed BLOCKED (#1358).What changes
merge_grouptriggers on Python CI, Packages, Secret Scan, Dependency Review, CodeQL and Platform manifest. These cover every required check: gitleaks, dependency-review, Analyze (python),run-ci (ubuntu-latest, 3.12)and packages-gate.Scoping a group like a push to main.
scopejob and desktop-build'sartifact-scopediff the group's head againstgithub.event.merge_group.base_sha.merge_grouplikepush: native installers build only for artifact-sensitive changes.dependency-review in a group. It passes the group's
base_shaandhead_shaexplicitly, since a group's payload has no pull request.Every PR base.
pull_requeston dependency-review and CodeQL no longer filters tomain.Settings this PR does not change
These need a repository admin. In the
mainbranch ruleset, under "Require merge queue":Merge this PR before turning the queue on. Otherwise groups wait on checks that never start.
Savings
Today each PR runs its full pipeline about twice: once on the PR, and again after "update branch" when
mainhas moved. That's about 40 jobs per run.With batching, up to 5 PRs share one group run instead of 5 rebase-and-rerun cycles: about 4 × 40 = 160 jobs saved per full group of 5.
Groups also replace the serial merge wait. In the batch of 2026-10-19, rebases on
mainadded hours of queue time.I'll add measured group wall times as a comment once the queue is on.
Verified
merge_group(desktop-build is a called workflow and inherits the event).test_merge_queue_group_is_scoped_like_main.Follow-up (separate PR). A merge group's head commit becomes
main's commit, so thepushrun onmainrepeats the group's run on the same tree. Once the queue is on,mainruns can be cut to what the Desktop release gate needs. That needs coordinating with the session moving the release trigger toworkflow_run.🤖 Generated with Claude Code