fix(ci): give the heavy E2E shard headroom + stream live progress (#3392)

The 35m bump still wasn't enough — shard 5/6 (responsive viewport matrix +
studio/smoke, ~24 serial tests after a ~5m build) was still cancelled at 35m,
and the `github` Playwright reporter buffers output so the cancelled log showed
no per-test results (couldn't tell which test was slow).

- e2e timeout-minutes 35 -> 50 (the shard observably needs >35m; other shards
  finish in ~7m so they're unaffected).
- Playwright CI reporter github -> line so per-test progress + timing stream
  live to the job log, making any genuinely slow/hung test diagnosable.
This commit is contained in:
Diego Rodrigues de Sa e Souza 2026-06-07 15:59:28 -03:00 committed by GitHub
parent b4437dcee4
commit a471d70c3c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 6 deletions

View file

@ -500,11 +500,12 @@ jobs:
test-e2e:
name: E2E Tests (${{ matrix.shard }}/6)
runs-on: ubuntu-latest
# 20m was too tight for the heaviest shard: each shard re-runs `npm run build`
# (~5m) before Playwright, so a slow shard's tests + build overran 20m and the
# job was cancelled mid-run. 35m gives headroom; the per-test cap in
# playwright.config.ts bounds any genuine hang to a fast, visible failure.
timeout-minutes: 35
# The heaviest shard (responsive viewport matrix + studio/smoke) re-runs
# `npm run build` (~5m) then ~24 serial tests; at 35m it was still cancelled
# mid-run, so it genuinely needs more wall-clock. 50m gives ample headroom
# while the per-test cap (playwright.config.ts) bounds any real hang to a fast
# visible failure and the `line` reporter streams which test is slow.
timeout-minutes: 50
needs: build
strategy:
fail-fast: false

View file

@ -33,7 +33,11 @@ export default defineConfig({
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: 1,
reporter: process.env.CI ? "github" : "html",
// `line` (not `github`) in CI so per-test progress + timing stream live to the
// job log. The `github` reporter buffers all output until the run ends, so when
// a slow shard was cancelled at its timeout the log showed only "Running N
// tests" then silence — impossible to tell which test was slow/hung.
reporter: process.env.CI ? "line" : "html",
expect: {
timeout: process.env.CI ? 30_000 : 10_000,
},