From caa8bde59463f82c80711533a836e4fc5e7f849f Mon Sep 17 00:00:00 2001 From: Phyllis Wu Date: Mon, 20 Apr 2026 10:54:50 -0400 Subject: [PATCH] E2E: trial for more workers + shards --- .github/workflows/tests-pr.yml | 12 ++++++++---- packages/e2e/playwright.config.ts | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests-pr.yml b/.github/workflows/tests-pr.yml index e95c3cfb93..0a22e92030 100644 --- a/.github/workflows/tests-pr.yml +++ b/.github/workflows/tests-pr.yml @@ -216,11 +216,15 @@ jobs: run: exit 1 e2e-tests: - name: 'E2E tests' + name: "E2E tests (shard ${{ matrix.shard }})" if: github.event.pull_request.head.repo.full_name == github.repository runs-on: ubuntu-latest timeout-minutes: 20 continue-on-error: true + strategy: + fail-fast: false + matrix: + shard: ['1/2', '2/2'] steps: - uses: actions/checkout@v3 with: @@ -245,19 +249,19 @@ jobs: E2E_ACCOUNT_PASSWORD: ${{ secrets.E2E_ACCOUNT_PASSWORD }} E2E_STORE_FQDN: ${{ secrets.E2E_STORE_FQDN }} E2E_ORG_ID: ${{ secrets.E2E_ORG_ID }} - run: pnpm exec playwright test + run: pnpm exec playwright test --shard ${{ matrix.shard }} - name: Upload Playwright report uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: - name: playwright-report + name: playwright-report-${{ strategy.job-index }} path: packages/e2e/playwright-report/ retention-days: 14 - name: Upload test results uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: - name: playwright-results + name: playwright-results-${{ strategy.job-index }} path: packages/e2e/test-results/ retention-days: 14 diff --git a/packages/e2e/playwright.config.ts b/packages/e2e/playwright.config.ts index 6f50364b4f..e10b229cd3 100644 --- a/packages/e2e/playwright.config.ts +++ b/packages/e2e/playwright.config.ts @@ -13,7 +13,7 @@ export default defineConfig({ fullyParallel: true, forbidOnly: isCI, retries: 0, - workers: 5, + workers: 10, maxFailures: isCI ? 3 : 0, // Stop early in CI after 3 failures reporter: isCI ? [['html', {open: 'never'}], ['list']] : [['list']], timeout: TEST_TIMEOUT.default, // Heavy tests override via test.setTimeout()