Enhance CI workflow with E2E sharding and report merging#1652
Enhance CI workflow with E2E sharding and report merging#1652
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the Jetstream E2E CI pipeline to run Playwright tests in shards and then merge shard outputs into a single HTML report artifact, aiming to reduce overall CI time and improve test report visibility.
Changes:
- Switch Playwright CI reporter from
htmltoblobso shard results can be merged later. - Shard the E2E job into 4 matrix runs and upload a blob report artifact per shard.
- Add a follow-up job to download all blob reports, merge them, and upload a single HTML report artifact.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| apps/jetstream-e2e/playwright.config.ts | Uses blob reporter in CI to enable post-run report merging. |
| .github/workflows/ci.yml | Adds Playwright sharding, per-shard blob artifacts, and a merge job producing one HTML report. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| retention-days: 1 | ||
|
|
||
| merge-e2e-reports: | ||
| if: ${{ !cancelled() }} |
There was a problem hiding this comment.
merge-e2e-reports will be skipped whenever any e2e shard fails because it has needs: [e2e] but the job-level if: does not use always(). This defeats the goal of producing a merged HTML report for failed runs. Update the job condition to include always() (while still skipping on cancellations) so the merge runs after shards complete regardless of pass/fail.
| if: ${{ !cancelled() }} | |
| if: ${{ always() && !cancelled() }} |
Implement sharding for end-to-end tests and merge reports into a single HTML report, improving CI efficiency and test result visibility.