Repository navigation
ci(web): react-apps-check shards run on Blacksmith 16 vCPU (-1.36M vCPU-min/day), failing over to 32 - #29033
Conversation
…ver to 32 The four webview test shards (and their base replay) were the largest Blacksmith spend: about 99k 32 vCPU minutes a day on 2026-10-29/30. The 16 vCPU shards of the same days took 14% longer at p50 for half the per-minute price. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
|
Owned by an agent session · session |
|
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)
Passes: CI passes on CI passes on Written by web and size checks: green Shipped in:
|
|
Review (codex, router-review): SHIP at 8dc4d87 Follow-ups: 1. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at 8dc4d87 Visual verdict: no images; Leo tries the build
Focused web validation tests pass; the failover suite retains only the documented base failure. Follow-ups:
|
|
Found 3 test failures on Blacksmith runners: Failures
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
The webview test shards (
react-apps-check (1..4)and their base replayreact-apps-base-check) move from Blacksmith 32 vCPU to Blacksmith 16 vCPU. The overflow failover still goes to the other size (now 32). No other job changes. (Fork PRs resolve to Blacksmith on this job, as they did before this PR; the review follow-up is filed separately.)Leo, 2026-10-30:
and later:
This PR only resizes jobs. The shards install Playwright Chromium with apt (
--with-deps), so they count as Linux-only and the mini fallback does not apply here. The table below marks which of the other top jobs could run on owned minis; that work belongs in follow-ups.Why these jobs
They cost the most on Blacksmith. Over 2026-10-29/30 (the fleet's daily GitHub job export), the shards used about 99k wall minutes a day at 32 vCPU, roughly 3.2M vCPU-minutes. The same days also had 303 shard runs that the overflow failover had already sent to 16 vCPU, which gives a same-suite comparison:
On 16 vCPU the shards take 14% longer at p50 and cost half as much per minute. No 16 vCPU run hit the 40 min timeout or ran out of memory. The 4 vCPU OOM in run 37666132324 is why
test_webviews_tests_run_on_a_runner_with_room_for_the_suitestill forbids 4 vCPU.Performance
Top 10 cmux jobs by Blacksmith use (2026-10-29/30, per day)
web / react-apps-check (1-4)(ci-web via ci.yml and cmux-next web)gallery health / health(4 shards)cmux-tui artifacts / build aarch64-apple-darwincmux-tui artifacts / build x86_64-apple-darwincmux-next fast tier(cargo)cmux-next checkscmux-tui artifacts / build aarch64-unknown-linux-muslcmux-tui artifacts / build x86_64-unknown-linux-muslcmux-next guards / CI guard groupFast / checks(fast-checks.yml, dispatch on main)Not in the vCPU top 10 but high in wall minutes:
cmux-tui artifacts / build-windows(20.2k on 4 vCPU Windows).nightly-guards / workflow-guard-tests / release-notary(18.3k on 4 vCPU; Python, so not Linux-only and could move to a mini).generated catch-up / catch up(9.5k on 2 vCPU, 279 s of it in checkout).Risk
timeout-minutes: 40. The 1920 s retry deadline still stops retries before the uploads. If timeouts appear, the fix is a fifth shard, not going back to 32.run-webviews-tests.shsizes its file and dev-server pools fromnproc, so it runs fewer at once on its own.CI_CLOUD_OVERFLOW_SAVEDis set, the shards go to 32 vCPU, the switch's pairing for 16 (test_ci_blacksmith_linux_failover).Tests
tests/test_web_validation.pynow expects 16 vCPU with the 32 failover. Run locally: 14 OK.tests/test_runs_on_labels.py: OK.tests/test_ci_blacksmith_linux_failover.py: 1 failure,app-platform.yml:45. It fails the same way on basececaf56b, so it is a base red and not from this change.pr-overlap: no open PR on feat-cmux-next overlaps this change. Prior art was read: ci(webviews): isolate base comparison from react shards #24927 set 32 vCPU when the base replay was split out, and ci: hard-coded Blacksmith Linux runs-on fail over to another Blacksmith size #26439 added the failover. Neither had a cost reason for 32.🤖 Generated with Claude Code
Agent session: agent session