Skip to content

perf(ci): parallelize browser regressions and report phase timings - #382

Merged
xiaoiver merged 2 commits into
masterfrom
codex/faster-browser-ci
Oct 9, 2026
Merged

xiaoiver merged 2 commits into
masterfrom
codex/faster-browser-ci

Conversation

@xiaoiver

@xiaoiver xiaoiver commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Browser regression currently runs Chromium and WebKit sequentially with one worker, taking 38–46 minutes in recent successful jobs. Run two Chromium shards and two duration-balanced WebKit groups (Lottie / all other suites) on independent runners. Preserve one worker per runner and the existing WebKit process isolation.

Keep browser-regression as the aggregate required check. It only succeeds when static checks and every browser group succeed; failed, cancelled and skipped prerequisites cannot pass the gate. Cancel superseded runs for the same PR/ref and retain per-group reports and failure artifacts for seven days.

Add a timing reporter with setup/body/teardown breakdowns, slow-file summaries and machine-readable results. Tooling tests discover the real Playwright suites to verify that the workflow groups cover every case exactly once: both Chromium shards and both WebKit groups, including the newly merged Brush cases. Local commands still run the full suites by default. No test assertions, retries or per-test timeouts are relaxed.

Collaboration replicas now initialize only the canvas they use. The main page and all canvas-isolation/lifecycle scenarios retain both canvases. This avoids two unused WebGL contexts across the additional tabs; locally the Yjs case improved from exceeding its 30-second limit to ~20 seconds.

Validation:

  • 18 tooling tests passed, including exact test partition coverage, merge-gate failure/cancellation/skipping, and timing aggregation.
  • Browser TypeScript, root ESLint, Markdown lint and diff checks passed.
  • All 32 WebKit Lottie cases, 7 Chromium Mermaid cases, and the WebKit D2 documentation case passed with the actual CI reporter and summary output.
  • All 6 Chromium lifecycle cases passed, including Yjs and Loro edits, undo/redo, deletion, late joining, resource cleanup and canvas isolation.
  • The complete browser suites will run in this PR's CI.

The previous CI log puts WebKit Lottie at ~11.6 minutes and the remaining WebKit cases at a similar cost. The target is approximately 15 minutes overall with available runners; actual CI timing is not yet measured.

@xiaoiver
xiaoiver merged commit f8b83ce into master Oct 9, 2026
15 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