Repository navigation
ci: shard the webviews suite twelve wide - #22237
Conversation
Fails at the base: react-apps-check runs 2 shards. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each of the two shards spent about 12 of its 14-16 minutes running ~50 dev-server test files two at a time. Twelve shards leave a few each. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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)
Probably yours: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; base red: the same failure on the base f1566d5; does not block
Agents: |
Lint, type check, the React Compiler check, the eager JS budget and the merge-driver test do not depend on the shard; twelve copies cost runner minutes and turn one lint red into twelve red checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Subagent review (correctness first): merge.
|
[Medium impact] The changes affect one webviews CI lane and a small set of app defaults. Fix the defaults snapshot mismatch before merging. Findings
SummaryMoves the webviews suite to four 32-vCPU shards and runs shard-independent checks only on shard 1.
Reviews (3) · Last reviewed commit: "chore(next): PR autofix at 7ccb608f72aa" · Reviewed by Greptile |
|
Found 20 test failures on Blacksmith runners: Failures
...and 10 more test failures. View all on Blacksmith
|
|
Re-review (subagent, correctness first) of the commits since the last review: no defects. SHIP at . |
|
Bead |
|
Holding this PR. The 12-shard run was not faster enough to justify 3x the runner time. Measured on run 39347314726 (8 vCPU per shard):
Why the gain is small. Each shard warms its own cold Vite cache for every dev-server config. When a shard's warming file fails, the script runs that config's other files one at a time on cold caches. That happened in shards 10 and 12: Hidden base reds. At the feat-cmux-next tip, both shards stop at "Check webviews (Oxlint, Oxfmt, type check)", so no webview test has run since about 10-17. This PR runs lint on shard 1 only, so the tests ran and 14 files failed. I ran those 14 alone at feat-cmux-next
Next steps for this lane.
|
Twelve 8 vCPU shards took 14.3 min (run 39347314726): each warmed its Vite caches cold and ran dev-server files two at a time, and a warm-up that timed out sent a shard's dev-server files one at a time. Four 32 vCPU shards share each warm cache across about 33 dev-server files and run eight at once. Blacksmith runners are free for this repository. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
- regenerated schemas/defaults/cmux-next.json Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/39350455316
| "setting.markdown.code.blockSize": null, | ||
| "setting.markdown.code.scale": 0.875, |
There was a problem hiding this comment.
cmux-next.json no longer matches the committed settings schema. That schema still gives markdown.code.blockSize a default of 14 and has no markdown.code.scale or home.chiefPet* rows. defaults_guard.py builds the snapshot from that schema and rejects any mismatch, so the defaults guard check fails on this head. Regenerate and commit the matching settings exports and snapshot together, or remove these unrelated snapshot changes.
|
Post-merge measurement and attribution for the 4 × 32 vCPU layout (run 39350455357):
Blacksmith runners are free here, so runner minutes don't matter. I ran the four files that failed in that run alone at feat-cmux-next
The gallery dev-server warm-up still times out cold at 100 s even on 32 vCPU (shard 2). That is a base problem: it took about 22 s on 10-17. |
|
Shipped in:
|
Summary
react-apps-checkruns the webviews suite as 2 file shards on 8 vCPU Blacksmith runners. Over recent green runs, shard 1 took a p50 of 15.5 min (17.8 max) and shard 2 took 13.2 min. Nearly all of that time is one phase.run-webviews-tests.shruns about 50 dev-server test files per shard, two at a time, at about 28 s each, which takes about 12 min. The other 120-odd files finish inside a minute.This PR raises the matrix to 12 shards, so each shard holds 4-5 dev-server files. A concurrency probe ran 256 Blacksmith jobs at 32 vCPU at once with a p90 queue of 21 s, so 12 jobs here won't queue.
.github/workflows/ci-web.yml: 12includeentries withshard_count: 12. PR-scoped rules still run on shard 1 only.tests/test_web_validation.py: requires at least 12 shards, numbered 1..N, all with the sameshard_count.Expected cost: the wall time on the critical path goes from about 16 to about 5 min. Runner minutes go from about 29 to about 60 per run, because each shard repeats about 1.5 min of setup (checkout, bun install, Playwright, bundle build). That is about $0.46 → $0.96 per run at $0.016/min for 8 vCPU. I'll post the measured numbers from this PR's own run.
Fork PRs run the same matrix on hosted
ubuntu-24.04.Testing
python3 -m unittest -k shard_wide test_web_validation(fromtests/) failed on 1b116ff:2 not greater than or equal to 12. It passes on the head.test_web_validation,test_pr_red_checks_commentandtest_webviews_tests_per_filepass.test_ci_change_areas.pyhas the same 34 local failures with and without this change (local environment).Observed / Not run
cmux-next-webruns.Changelog
none
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Shards the webviews test suite onto four 32 vCPU runners so
react-apps-checkfinishes in about 5 minutes instead of 14–16.The old two-shard, 8 vCPU setup spent about 12 of its minutes running dev-server test files two at a time. Twelve 8 vCPU shards barely helped (14.3 min) because each shard started with a cold Vite cache warm-up. Four 32 vCPU shards share one warm cache across about 33 dev-server files per shard and run eight files at once. The shard-independent steps (lint, type check, React Compiler check, eager JS budget, merge-driver test) now run only on shard 1, so a lint failure shows as one red check instead of four.
blacksmith-32vcpu-ubuntu-2404and adds a validation test requiring 4 numbered, consistent shards with those shard-independent steps gated to shard 1.Written for commit 6b797fe. Summary will update on new commits.
Review: SHIP at dfcbc83 (cmux-review subagent; correctness first)
Not UI: CI matrix and step gating only; no app or webview code changes.
🤖 Generated with Claude Code