|
14 | 14 |
|
15 | 15 | jobs: |
16 | 16 | e2e: |
17 | | - name: E2E (Playwright, ${{ matrix.browser }}) |
| 17 | + name: ${{ matrix.jobName }} |
18 | 18 | runs-on: ubuntu-latest |
19 | 19 | timeout-minutes: 35 |
20 | 20 | strategy: |
21 | 21 | fail-fast: false |
22 | 22 | matrix: |
23 | | - browser: |
24 | | - - chromium |
25 | | - - webkit |
| 23 | + include: |
| 24 | + - browser: chromium |
| 25 | + jobName: E2E (Playwright, chromium) |
| 26 | + workers: 2 |
| 27 | + shardIndex: 1 |
| 28 | + shardTotal: 1 |
| 29 | + - browser: webkit |
| 30 | + jobName: E2E (Playwright, webkit, shard 1/3) |
| 31 | + workers: 1 |
| 32 | + shardIndex: 1 |
| 33 | + shardTotal: 3 |
| 34 | + - browser: webkit |
| 35 | + jobName: E2E (Playwright, webkit, shard 2/3) |
| 36 | + workers: 1 |
| 37 | + shardIndex: 2 |
| 38 | + shardTotal: 3 |
| 39 | + - browser: webkit |
| 40 | + jobName: E2E (Playwright, webkit, shard 3/3) |
| 41 | + workers: 1 |
| 42 | + shardIndex: 3 |
| 43 | + shardTotal: 3 |
26 | 44 |
|
27 | 45 | steps: |
28 | 46 | - name: Checkout |
@@ -54,20 +72,25 @@ jobs: |
54 | 72 | - name: Run Playwright Tests |
55 | 73 | env: |
56 | 74 | CI: 'true' |
57 | | - run: npm run test:e2e -- --project=${{ matrix.browser }} |
| 75 | + run: | |
| 76 | + SHARD_ARGS='' |
| 77 | + if [ '${{ matrix.shardTotal }}' != '1' ]; then |
| 78 | + SHARD_ARGS="--shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}" |
| 79 | + fi |
| 80 | + npm run test:e2e -- --project=${{ matrix.browser }} --workers=${{ matrix.workers }} $SHARD_ARGS |
58 | 81 |
|
59 | 82 | - name: Upload Playwright report |
60 | 83 | uses: actions/upload-artifact@v6.0.0 |
61 | 84 | if: ${{ failure() }} |
62 | 85 | with: |
63 | | - name: playwright-report-${{ matrix.browser }} |
| 86 | + name: playwright-report-${{ matrix.browser }}-${{ matrix.shardIndex }}of${{ matrix.shardTotal }} |
64 | 87 | path: playwright-report |
65 | 88 | if-no-files-found: ignore |
66 | 89 |
|
67 | 90 | - name: Upload Playwright test results |
68 | 91 | uses: actions/upload-artifact@v6.0.0 |
69 | 92 | if: ${{ failure() }} |
70 | 93 | with: |
71 | | - name: test-results-${{ matrix.browser }} |
| 94 | + name: test-results-${{ matrix.browser }}-${{ matrix.shardIndex }}of${{ matrix.shardTotal }} |
72 | 95 | path: test-results |
73 | 96 | if-no-files-found: ignore |
0 commit comments