Skip to content

Split and shard the web CI critical path - #13437

Merged
teamleaderleo merged 3 commits into
mainfrom
codex/ci-shard-web-tests
Sep 21, 2026
Merged

teamleaderleo merged 3 commits into
mainfrom
codex/ci-shard-web-tests

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Break the serial web-typecheck grab bag into independently scheduled checks.

  • keep web-typecheck focused on relay-catalog validation + the ~4s TypeScript gate;
  • run the Bun test corpus as four --shard matrix workers;
  • run instant-navigation Playwright in its own sibling job;
  • cache Playwright browser payloads between runs while retaining --with-deps for host libraries;
  • keep one reusable-workflow web-status aggregate so required-check semantics stay fail-closed.

On #13431 the old job was 286s: 4s typecheck, 166s web tests, 22s browser install, 77s instant-navigation. This change makes those costs concurrent and shards the largest serial block.

This does not change which diffs select the web area. Routing is handled separately in #13436.

Related: #13095, #13325.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Breaks the serial web-typecheck CI job into parallel lanes so the TypeScript gate, the Bun test corpus, and the Playwright browser checks no longer run back to back. The combined job took 286s on a reference run; sharding the 166s test block across four workers and running the 77s browser lane concurrently brings the web critical path down to roughly the slowest lane.

  • web-typecheck keeps only the relay-catalog validation and the ~4s TypeScript gate.
  • Bun tests run as four --shard matrix workers; instant-navigation Playwright runs as a sibling job with a Playwright browser cache between runs.
  • web-status aggregates all three lanes so required-check semantics stay fail-closed.
  • Adds assertions in tests/test_ci_change_areas.py covering the split lanes.

This does not change which diffs select the web area; routing is handled separately in #13436.

Written for commit 9754446. Summary will update on new commits.

Review in cubic

@coderabbitai

coderabbitai Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 2 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 783087d2-1c99-48e2-8e1d-40628fe20026

📥 Commits

Reviewing files that changed from the base of the PR and between d42ce20 and 9754446.

📒 Files selected for processing (2)
  • .github/workflows/ci-web.yml
  • tests/test_ci_change_areas.py

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 21, 2026 20:17
@teamleaderleo
teamleaderleo merged commit 037cff7 into main Sep 21, 2026
47 of 48 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant