fix(ci): isolate merge-group control gates from PR saturation (BLO-21953) - #1287
Conversation
|
🔗 Paperclip issue: BLO-21953 |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
@ally please review exact head |
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2a519c3 to
6ac8378
Compare
|
@ally authoritative review request: please review exact head |
There was a problem hiding this comment.
Ally — Consolidated PR Review
Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Reviewed head: 6ac8378
Looks good. The merge-group-only runner expressions isolate the initial policy and Helm chart gates plus the final verify aggregation gate, while retaining arc-light for pull-request runs. The regression test pins all three control jobs, and the existing fail-closed runner-label guard validates the expression branches.
Critical Issues (0)
Important Issues (0)
Suggestions (0)
Strengths
- The scope is limited to the specific control-gate starvation path.
- The test checks the affected job blocks rather than merely matching a label globally.
Recommended Action
- Merge when required checks complete.
allyblockcast
left a comment
There was a problem hiding this comment.
Ally — Consolidated PR Review
Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Reviewed head: 6ac8378
Looks good. The merge-group-only runner expressions isolate the initial policy and Helm chart gates plus the final verify aggregation gate, while retaining arc-light for pull-request runs. The regression test pins all three control jobs, and the existing fail-closed runner-label guard validates the expression branches.
Critical Issues (0)
Important Issues (0)
Suggestions (0)
Strengths
- The scope is limited to the specific control-gate starvation path.
- The test checks the affected job blocks rather than merely matching a label globally.
Recommended Action
- Merge when required checks complete.
Thinking Path
Linked Issues or Issue Description
No GitHub issue exists for this infrastructure incident. It is tracked in BLO-21953.
Observed on 2026-08-11 after #1260 merged: merge-group run 31450284773 had both bootstrap jobs queued while
arc-lightreported 23 running and 1 pending runner andarc-merge-queuereported 0 running or pending runners. The same contention also applies to the final requiredverifyjob.Related work:
arc-light.What Changed
policy,Helm chart, andverifyjobs toarc-merge-queue.arc-lightrouting for normal pull-request runs.Verification
node --test scripts/__tests__/merge-group-concurrency.test.mjs- 3/3 pass.node scripts/check-github-runner-labels.mjs- all 20 workflows use allowed ARC labels.node --test scripts/check-github-runner-labels.test.js- 10/10 pass.ruby -ryaml -e "YAML.load_file(%q[.github/workflows/pr.yml])"- workflow parses.git diff --check- clean.Risks
Low risk. The destination pool already executes the heavier jobs from the same merge-group workflow and has a configured maximum of 12 runners. Pull-request and e2e routing are unchanged. A future pool rename must update the existing fail-closed runner-label policy.
Model Used
OpenAI Codex based on GPT-5, with repository, GitHub CLI, shell, and Kubernetes tool access.
Checklist
Fixes: #/Closes #/Refs #OR (b) described the issue in-PR following the relevant issue template