Repository navigation
ci(nightly): the prepared-app upload sends 32 artifact blocks at a time, not 5 - #32490
Conversation
…me, not 5 Signing waits on prepare-nightly-variant-primary's end, and its last step uploads the 346 MB prepared app. On a dedicated nightly Mac that upload took 65-156 s (median 85 s over 21 runs, 41455121554-41488515134) at upload-artifact's default 5 blocks at a time; the same Macs move the 413 MB unsigned app in a median 53 s at 32 since #32343. Reuse that step's ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY anchor on the prepared-app upload, which the fallback leg (prepare-nightly-variant) shares by alias. Same artifact, name, compression and retention; a test pins it on both legs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7
|
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)
Shipped in:
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/41497919334 at f6b340f failed: cmux-next crash ends the app, cmux-next daemon tests. |
|
Review (subagent claude-sonnet-5-5): SHIP at 87d3b73 The anchor is defined at line 2448, before its use at line 3274, and resolves. The step had no env before, so nothing is overwritten. The new test covers both the primary and fallback legs and passes. Follow-ups: none |
…ghtly.yml back under its size cap (#32513) #32490, #32501 and #32498 together took nightly.yml to 493,218 bytes, past the 490,000-byte cap in tests/test_workflow_file_size.py. Move "Build and sign the release notes" and "Embed channel provisioning profile" into scripts/ci/nightly-steps/, the same way earlier steps were moved; the second runs under bash -e like its inline block did. The workflow expanded by tests/nightly_workflow_text.py is byte-identical to base. nightly.yml is now 485,819 bytes. Base-red-job: test_workflow_file_size (nightly.yml over its 490,000-byte cap) Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Signing waits on
prepare-nightly-variant-primary's end, and its last step uploads the prepared app (346 MB in run 41485637444). When the build job places the preparation on a dedicated nightly Mac, that upload ran at upload-artifact's default of 5 blocks at a time: 65-156 s, median 85 s, over 21 runs (41455121554 to 41488515134). On the same Macs, the 413 MB unsigned-app upload inbuild-nightly-apphas sent 32 blocks at a time since #32343 and takes a median 53 s across 24 runs.This PR puts the same
ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY: "32"anchor (*artifact-upload-concurrency) on "Upload prepared app for signing". The fallback legprepare-nightly-variantuses that step by alias, so it gets the setting too. Artifact name, path, compression level 0, retention and step order are unchanged. A test intests/test_nightly_stop_if_publish_doomed.pypins the setting on both legs. It fails without the workflow change and passes with it.The change only matters when the preparation runs on a Mac. On the Linux overflow route the upload already takes 3 s (runs 41480007529, 41490937436 and 41492012856).
Performance
The "after" numbers are estimates. The next nightly-next run whose preparation lands on a Mac measures them.
Tests
python3 -m unittest tests.test_nightly_stop_if_publish_doomed: fails without the workflow change (2 errors), passes with ittests.test_nightly_step_coverage,test_nightly_background_steps,test_nightly_workflow_size,test_nightly_trusted_routing,test_ci_nightly_off_blacksmith,tests/test_nightly_sign_shadow_workflow.py,tests/test_ci_self_hosted_guard.sh: passAgent session: agent session
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Speeds up the nightly prepared-app upload on Mac runners by sending 32 artifact blocks at a time instead of the default 5. Reuses the same
*artifact-upload-concurrencyanchor as the unsigned-app upload; the fallback legprepare-nightly-variantshares the step by alias and inherits it too. Artifact name, path, compression level 0 and retention are unchanged.Performance
Tests
test_prepared_app_upload_sends_blocks_in_parallelpinsACTIONS_ARTIFACT_UPLOAD_CONCURRENCY: "32"andcompression-level: 0on both legs and fails without the workflow change.Written for commit 87d3b73. Summary will update on new commits.