Skip to content

ci(e2e): parallelize E2E tests with 8-shard matrix#217

Merged
steilerDev merged 1 commit into
betafrom
ci/e2e-parallel-sharding
Feb 23, 2026
Merged

ci(e2e): parallelize E2E tests with 8-shard matrix#217
steilerDev merged 1 commit into
betafrom
ci/e2e-parallel-sharding

Conversation

@steilerDev
Copy link
Copy Markdown
Owner

Summary

  • Replace single E2E job with an 8-shard Playwright matrix strategy in ci.yml, reducing wall-clock time from ~25-30 min to ~5-8 min per shard
  • Reduce workers from 8 to 4 per shard (1 per vCPU) to eliminate CPU contention and flakiness
  • Delete standalone e2e.yml workflow — all E2E runs now happen in ci.yml on main-targeting PRs
  • Add report merging — each shard uploads a blob report, a merge job combines them into a single HTML artifact

Changes

File Change
e2e/playwright.config.ts Workers 8→4, conditional blob reporter when sharding
e2e/package.json Add test:shard + merge-reports scripts
package.json (root) Add test:e2e:shard + test:e2e:merge-reports proxy scripts
.github/workflows/ci.yml Replace e2e job with 8-shard matrix + e2e-merge-reports job
.github/workflows/e2e.yml Deleted
CLAUDE.md Remove e2e.yml references

Test plan

  • PR targeting beta: e2e-smoke runs as before; sharded e2e does NOT run (gated to main)
  • PR targeting main: 8 E2E Tests (Shard N/8) jobs appear, merge job combines reports
  • One shard failure → others complete → merge job still produces combined report
  • Merged HTML report available as e2e-test-results artifact

🤖 Generated with Claude Code

Replace the single E2E job with an 8-shard matrix strategy using
Playwright's --shard flag. Each shard runs ~3-4 test files with 4
workers (1 per vCPU) instead of 8, reducing CPU contention and
flakiness. A merge-reports job combines blob reports into a single
HTML artifact.

Delete the standalone e2e.yml workflow that ran on beta pushes —
all E2E runs now happen in ci.yml on main-targeting PRs.

- Workers: 8 → 4 per shard (reduced CPU contention)
- Reporter: conditional blob (sharding) vs html (local/non-sharded)
- New scripts: test:e2e:shard, test:e2e:merge-reports
- Timeout: 30 min → 15 min per shard
- Expected wall-clock improvement: ~25-30 min → ~5-8 min

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@steilerDev steilerDev merged commit d5decd5 into beta Feb 23, 2026
8 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.9.0-beta.57 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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.

2 participants