Skip to content

Enhance CI workflow with E2E sharding and report merging#1652

Open
paustint wants to merge 1 commit intomainfrom
chore/chard-ci-e2e-job
Open

Enhance CI workflow with E2E sharding and report merging#1652
paustint wants to merge 1 commit intomainfrom
chore/chard-ci-e2e-job

Conversation

@paustint
Copy link
Copy Markdown
Contributor

Implement sharding for end-to-end tests and merge reports into a single HTML report, improving CI efficiency and test result visibility.

Copilot AI review requested due to automatic review settings April 10, 2026 15:41
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 html to blob so 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() }}
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
if: ${{ !cancelled() }}
if: ${{ always() && !cancelled() }}

Copilot uses AI. Check for mistakes.
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