From a471d70c3cebbe3f18b5fab15cc7e5126eeb2d67 Mon Sep 17 00:00:00 2001 From: Diego Rodrigues de Sa e Souza <8016841+diegosouzapw@users.noreply.github.com> Date: Sun, 7 Jun 2026 15:59:28 -0300 Subject: [PATCH] fix(ci): give the heavy E2E shard headroom + stream live progress (#3392) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .github/workflows/ci.yml | 11 ++++++----- playwright.config.ts | 6 +++++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac3cdab2ce..668c125dc7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/playwright.config.ts b/playwright.config.ts index 072fb79a0f..fada0fd742 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -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, },