Keep red e2e shards inside the CI budget

Proving run 28925348032 showed a shard can still hit the 45-minute job
timeout while the suite carries many real failures: shard 4 held the
visual crawl (5.3 minutes per attempt, currently failing) plus dozens of
14-second failing attempts, and with two retries the failure storm
outran the budget even under the 20-failure cap.

Retry once instead of twice on CI, and run the visual crawl only on the
desktop project. The mobile emulation projects keep their dedicated
mobile specs; a per-project 5-minute crawl was the single most expensive
line in the suite.
This commit is contained in:
rcourtman 2026-07-08 09:15:38 +01:00
parent a54e67cb0f
commit 26a975f461

View file

@ -14,8 +14,10 @@ export default defineConfig({
/* Fail the build on CI if you accidentally left test.only in the source code */
forbidOnly: !!process.env.CI,
/* Retry on CI only */
retries: process.env.CI ? 2 : 0,
/* Retry once on CI to absorb flake; a second retry only multiplies the
cost of real failures (each settings-shell failure costs ~14s/attempt,
a failing visual crawl over 5 minutes). */
retries: process.env.CI ? 1 : 0,
/* On CI, a broken test environment fails most of the suite; abort early so
the run produces a red completed verdict with a report instead of
@ -81,15 +83,17 @@ export default defineConfig({
...devices['Pixel 5'],
},
// Journey tests skip on mobile projects (all use test.skip for mobile-*),
// so exclude them to avoid unnecessary browser launches.
testIgnore: ['**/journeys/**'],
// so exclude them to avoid unnecessary browser launches. The visual
// crawl takes 5+ minutes per project; one desktop pass is the budgeted
// coverage, and dedicated mobile specs cover mobile layout.
testIgnore: ['**/journeys/**', '**/99-visual-crawl.spec.ts'],
},
{
name: 'mobile-safari',
use: {
...devices['iPhone 12'],
},
testIgnore: ['**/journeys/**'],
testIgnore: ['**/journeys/**', '**/99-visual-crawl.spec.ts'],
},
// Uncomment to test on Firefox and WebKit