Repository navigation
ci(nightly): keep the primary preparation off the light-job placement - #31463
Merged
Merged
Conversation
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. 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 73f6764 to compare; do not merge until green; see lane-rules Shipped in:
|
Collaborator
Author
|
Review (subagent claude-opus-5-5 medium): SHIP at 974d7b2
Follow-ups:
|
teamleaderleo
added a commit
that referenced
this pull request
Nov 2, 2026
…lacement (#31463)" (#31636) This reverts commit 1d6ff66. Blacksmith's 16-vCPU Linux label is queueing nightly jobs 5-14 min (runs 41372372224, 41373656988, 41374257749: prepare-nightly-variant-primary, attest-nightly-remote-daemon and pick-nightly-sign-runner queued there). With #31463 the primary preparation had only that route. On an idle all-nightly runner it takes about 4.8 min, but it starts at once. Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo
added a commit
that referenced
this pull request
Nov 2, 2026
… idles there prepare-nightly-variant-primary only moves and reads files. Its median is 202 s on a dedicated nightly Mac (signing-input download 49 s, upload 85 s) against 45 s on Linux. #31463 moved it to Blacksmith Linux alone and #31636 reverted that when Blacksmith's 16 vCPU label queued nightly jobs 5-14 min. build-nightly-app's new step place-fleet (after "Collect the light-job placement", before the always() cleanup) runs portable_job_placement.py with FLEET_LINUX=cmux-fleet-linux-x64 and REQUIRE_LIVE_CAPACITY=1 for this one job: it names the fleet label only while the runner census shows an idle Linux runner beyond the label's queue, so the job starts at once, and it never waits. Otherwise the job keeps today's route: the light placement's mini, then the runner set's Blacksmith member. A re-run takes Blacksmith, as before. The fallback leg prepare-nightly-variant is unchanged. The lipo shim moves to scripts/ci/nightly-steps/put-llvm-lipo-on-path.sh to keep nightly.yml under its size cap (it was 126 bytes over on base). runner_routing_table.py now checks that a nightly light job reads the fleet output before the mini. The fat Mach-O check in "Verify nightly binary architectures" now fails when file(1) is missing or errors (a fresh Linux VM installs it first), instead of reading every file as not fat. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7
teamleaderleo
added a commit
that referenced
this pull request
Nov 2, 2026
… idles there (#32511) prepare-nightly-variant-primary only moves and reads files. Its median is 202 s on a dedicated nightly Mac (signing-input download 49 s, upload 85 s) against 45 s on Linux. #31463 moved it to Blacksmith Linux alone and #31636 reverted that when Blacksmith's 16 vCPU label queued nightly jobs 5-14 min. build-nightly-app's new step place-fleet (after "Collect the light-job placement", before the always() cleanup) runs portable_job_placement.py with FLEET_LINUX=cmux-fleet-linux-x64 and REQUIRE_LIVE_CAPACITY=1 for this one job: it names the fleet label only while the runner census shows an idle Linux runner beyond the label's queue, so the job starts at once, and it never waits. Otherwise the job keeps today's route: the light placement's mini, then the runner set's Blacksmith member. A re-run takes Blacksmith, as before. The fallback leg prepare-nightly-variant is unchanged. The lipo shim moves to scripts/ci/nightly-steps/put-llvm-lipo-on-path.sh to keep nightly.yml under its size cap (it was 126 bytes over on base). runner_routing_table.py now checks that a nightly light job reads the fleet output before the mini. The fat Mach-O check in "Verify nightly binary architectures" now fails when file(1) is missing or errors (a fresh Linux VM installs it first), instead of reading every file as not fat. Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Follow-up to #31410. It placed all three light jobs on the dedicated nightly Macs. The two small ones belong there.
prepare-nightly-variant-primarydoesn't: it downloads the whole unsigned app, scans every file for the browser-data import proof, and uploads the prepared app. On a dedicated nightly Mac that cost more than the 3-minute placement wait #31410 removed.Change: the placement step's
JOBSdropsprepare-nightly-variant-primary, so it is never offered and its runs-on takes its Blacksmith route at once. Its placement-aware runs-on is unchanged.Tests:
tests/test_nightly_trusted_routing.py(updated),tests/test_ci_portable_job_placement.py,tests/test_ci_nightly_off_blacksmith.pyandtests/test_runner_routing_table.pypass.Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Keeps
prepare-nightly-variant-primaryoff the dedicated nightly Mac placement so it takes its faster Blacksmith route.#31410 put all three light jobs on dedicated nightly Macs. That made
prepare-nightly-variant-primarytake 4.8 min (download, browser-data import proof, upload) versus 57 s on its Blacksmith route, wiping out the 3-minute placement wait the placement removed. This PR drops it from the placement step'sJOBSlist — it's no longer offered, so it neither waits nor lands on a Mac — while the two small jobs stay on the reservation and its placement-awareruns-onis unchanged. Updated the placement test to match.Written for commit 974d7b2. Summary will update on new commits.