Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Comment on lines +36 to +40

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Instead of completely replacing the github reporter with line, you can use both in CI. Playwright supports multiple reporters simultaneously. This allows you to get live progress streaming in the job logs via the line reporter, while still retaining the rich inline annotations on GitHub PRs via the github reporter.

Suggested change
// `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",
// Use both `line` and `github` reporters in CI. `line` provides live progress
// and timing streams to the job log (preventing silent timeouts), while `github`
// provides inline annotations on the pull request.
reporter: process.env.CI ? ["line", "github"] : "html",

expect: {
timeout: process.env.CI ? 30_000 : 10_000,
},
Expand Down