Skip to content

fix(e2e): add a globalTimeout under the 45m CI cap - #142

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/playwright-trace-and-globaltimeout
Aug 8, 2026
Merged

fix(e2e): add a globalTimeout under the 45m CI cap#142
rubenvdlinde merged 1 commit into
developmentfrom
fix/playwright-trace-and-globaltimeout

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Part of the fleet-wide Playwright instrument sweep for ConductionNL/.github#188. Neither change can alter a verdict — both change whether you can see why a verdict happened.

trace

This repo's trace is already retain-on-failure, so only the timeout half applies here.

Reproduced with two minimal Playwright projects differing only in the trace value, same deliberately failing test, retries: 0 in both:

config trace zips written
retries: 0 + on-first-retry 0
retries: 0 + retain-on-failure 1 (7.4 KB)

globalTimeout: 38 * 60_000

The shared quality.yml Playwright job is timeout-minutes: 45. A job cancelled by that cap yields no verdict and no artifacts — the trace upload is if: failure(), the report upload is if: always(), and neither runs on a cancelled job, while gh pr checks still renders it as "fail". Runs cancelled at ~45m16s have been observed in this fleet.

Margin, measured rather than assumed: overhead before Run Playwright tests starts is 2.0-2.4 min (openconnector run 31257480415 = 2m20s; opencatalogi, doriath, openregister in the same band); uploads after it take seconds. 38m + ~2.5m setup + uploads sits ~7 min under the cap. Verified that a fired globalTimeout exits with a tally (3 did not run / 1 passed) plus an HTML report and a trace zip on disk — exactly what a cancelled job does not give you.

Matches the value already landed in nldesign.

Fleet-wide Playwright instrument sweep, ConductionNL/.github#188. Neither
change can alter a verdict; both change whether you can see why a verdict
happened.

This repo's `trace` is already `retain-on-failure`, so only the timeout half applies here.

No repo in the fleet set `globalTimeout`. The shared quality.yml Playwright
job is `timeout-minutes: 45`, and a job cancelled by that cap produces no
verdict and no artifacts: the trace upload is `if: failure()` and the report
upload is `if: always()`, and neither runs on a cancelled job, while
`gh pr checks` still renders it as "fail". Runs cancelled at ~45m16s have
been observed in this fleet. Measured overhead in that job before the
`Run Playwright tests` step starts is 2.0-2.4 min, so 38m leaves ~7 min of
margin while guaranteeing a tally and its artifacts.
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/app-versions @ f122d54

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
composer ✅ 17/17
npm
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️
Hydra gates

Quality workflow — 2026-08-08 13:27 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 7313c98 into development Aug 8, 2026
19 of 32 checks passed
@rubenvdlinde
rubenvdlinde deleted the fix/playwright-trace-and-globaltimeout branch August 14, 2026 09:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant