Repository navigation
ci(nightly): the all-nightly reservation's idle runners take nightly-next's light jobs - #31410
Merged
Merged
Conversation
…next's light jobs Place the light jobs on a free mini only offered glaeda-side-* labels, so on the all-nightly route every nightly-next run waited its full three minutes on busy side minis and then sent prepare-nightly-variant(-primary) and await-nightly-tree-marker to Blacksmith: 186 s at the end of build-nightly-app in runs 41354494707, 41355147140 and 41356701375, on the feed's critical path, with a runner read every 30 s. While the reservation (vars.CI_NIGHTLY_ONLY_RUNNER) has idle runners, those jobs take it at once; otherwise placement is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7
Contributor
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on c4a9ee3 to compare; do not merge until green; see lane-rules Shipped in:
|
teamleaderleo
temporarily deployed
to
ci-routing-agent
November 1, 2026 23:02 — with
GitHub Actions
Inactive
Collaborator
Author
|
Review (subagent claude-opus-5-5 medium): SHIP at 226ac57
Follow-ups:
|
This was referenced Nov 1, 2026
teamleaderleo
added a commit
that referenced
this pull request
Nov 1, 2026
…#31463) prepare-nightly-variant-primary moves the whole app twice and scans every file of it. Placed on a dedicated nightly Mac by #31410 it took 4.8 min (run 41360732074: download 59 s, browser-data proof 99 s, upload 62 s) against 57 s on its Blacksmith route (run 41358657711), which undid the 3 min #31410 saved. The two tiny light jobs stay on the reservation; the primary is no longer offered, so it neither waits nor lands on a Mac. Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 2, 2026
Merged
This branch was previously deployed
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.
"Place the light jobs on a free mini", at the end of build-nightly-app, only offers
glaeda-side-*labels. The all-nightly reservation's light runners (glaeda-nightly-only-m4pro, four per dedicated Mac) exist for these jobs, but they never qualified. So on every nightly-next run the step waited its full three minutes on busy side minis, re-reading runners every 30 s, and then sentprepare-nightly-variant-primary,prepare-nightly-variantandawait-nightly-tree-markerto Blacksmith anyway.That wait sits on the path from landing to feed, and the rule allows 30 minutes for that path (the feed was about 45 min behind tonight).
Change (
scripts/ci/portable_job_placement.pyand the step's env in nightly.yml):NIGHTLY_ONLY_LABEL(vars.CI_NIGHTLY_ONLY_RUNNER). On a nightly placement whose runners were read, attempt 1 only (the same attempt rule, factored intoattempt_refusal), the jobs take the reservation's idle runners at once.glaeda-nightly-only-m4pro-builder, so it is never counted.Performance
Tests:
tests/test_ci_portable_job_placement.py: 36 pass, including new NightlyOnly cases for placement, the queue count, never the builder, the busy, unread, unset and later-attempt fallbacks, and the workflow wiring.tests/test_ci_nightly_off_blacksmith.py: 21 pass.test_ci_linux_single_sizefails the same way on base (cmux-next-base-tier-kick, cmux-next-dev-kick, ios-internal-nightly-trigger).Agent session: agent session
🤖 Generated with Claude Code