From b4437dcee4b49499be629d9b6e38eb195ccaeb24 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 14:57:29 -0300 Subject: [PATCH] fix(ci): stop the E2E shard from being cancelled mid-run (timeout headroom) (#3387) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The heaviest E2E shard (5/6 — responsive viewport matrix + studio/smoke) overran the job's 20m timeout-minutes because each shard re-runs `npm run build` (~5m) before Playwright, then runs ~24 serial tests with retries:2. The job was killed (CANCELLED mid-run, 'Terminate orphan process') instead of any test failing. - Bump test-e2e timeout-minutes 20 -> 35 (cumulative build+tests headroom). - Lower the Playwright per-test timeout 600s -> 180s so a genuine hang fails fast and visibly (a clear per-test timeout) instead of silently eating the job budget. --- .github/workflows/ci.yml | 6 +++++- playwright.config.ts | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d0f34d467e..ac3cdab2ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -500,7 +500,11 @@ jobs: test-e2e: name: E2E Tests (${{ matrix.shard }}/6) runs-on: ubuntu-latest - timeout-minutes: 20 + # 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 needs: build strategy: fail-fast: false diff --git a/playwright.config.ts b/playwright.config.ts index 5263e2643a..072fb79a0f 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -25,7 +25,11 @@ export default defineConfig({ "**/skills-marketplace.spec.ts", ], fullyParallel: false, - timeout: 600_000, + // Per-test cap. 600s was high enough that one hung test (× retries) could + // exhaust the e2e job's wall-clock budget, so the GitHub job hit its + // timeout-minutes and was CANCELLED mid-run instead of the test failing fast. + // 180s is generous for a UI flow yet bounds a hang to a clear per-test failure. + timeout: 180_000, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: 1,