The remaining shard failures are scattered single-test Playwright waitFor timeouts on 2-core runners, not systemic stack death; vitest --retry clears them without hiding real regressions (a consistent failure still fails after 3 attempts).
Unified · Split
| @@ -121,8 +121,11 @@ jobs: · 120 unmodified lines | |||
| 121 | 121 | ||
| 122 | # The globalsetup boots the target's own dev server (ports are claimed | 122 | # The globalsetup boots the target's own dev server (ports are claimed |
| 123 | # per checkout, so this is hermetic) and tears it down after the run. | 123 | # per checkout, so this is hermetic) and tears it down after the run. |
| 124 | # --retry=2: browser scenarios time out sporadically on 2-core runners | ||
| 125 | # (single-test waitFor timeouts, not systemic failures); a retry on the | ||
| 126 | # same booted stack clears them. | ||
| 124 | - name: Run ${{ matrix.target }} scenarios | 127 | - name: Run ${{ matrix.target }} scenarios |
| 125 | run: bunx vitest run --project ${{ matrix.target }} ${{ matrix.shard && format('--shard={0}', matrix.shard) || '' }} | 128 | run: bunx vitest run --project ${{ matrix.target }} --retry=2 ${{ matrix.shard && format('--shard={0}', matrix.shard) || '' }} |
| 126 | working-directory: e2e | 129 | working-directory: e2e |
| 127 | 130 | ||
| 128 | # Failed runs keep their trace.zip / session.mp4 / step screenshots in | 131 | # Failed runs keep their trace.zip / session.mp4 / step screenshots in |