Skip to content

ci: bound CI job runtimes with timeout-minutes - #12

Merged
rubenvdlinde merged 2 commits into
mainfrom
hotfix/bound-job-timeouts
Aug 3, 2026
Merged

ci: bound CI job runtimes with timeout-minutes#12
rubenvdlinde merged 2 commits into
mainfrom
hotfix/bound-job-timeouts

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

What

Adds timeout-minutes to every CI job in this repo that lacked one. Additions only — no job logic, step, trigger, or runs-on is changed.

Why

These jobs ran unbounded, so a hung runner (network stall, wedged npm ci) could burn the full 6 hour GitHub default before failing, holding a concurrency slot the whole time.

Bounds

Measured from observed fleet-wide durations — successful and failed executions, with skipped records excluded (those otherwise drag every median to zero):

job timeout observed
lint-check 15 min median 0.6 min, max 1.4 min (n=176)
validate 20 min median 0.5 min, max 3.2 min (n=162)
l10n 15 min median 0.1 min, max 1.1 min (n=193)
openapi 20 min max 1.0 min (n=5)

Bounds are deliberately loose — roughly 6-25x the observed max. A timeout that fires under normal runner contention is worse than no timeout at all, because it converts a merely slow run into a phantom defect. Please do not tighten these without new measurements.

Verification

Each touched file was re-parsed with PyYAML to confirm it still parses, the job set is unchanged, and each job carries exactly the intended value. Jobs not in scope were confirmed to still report no timeout. The check was itself positive-controlled (a deliberately mutated value was detected).

Every job in these workflows ran unbounded, so a hung runner could burn
the full 6h GitHub default before failing.

Bounds are set from observed fleet-wide durations (successful + failed
executions; skipped records excluded) and are deliberately loose --- a
timeout that fires under normal contention turns a slow run into a
phantom defect.

  lint-check  15 min  (median 0.6 min, max 1.4 min, n=176)
  validate    20 min  (median 0.5 min, max 3.2 min, n=162)
  l10n        15 min  (median 0.1 min, max 1.1 min, n=193)
  openapi     20 min  (max 1.0 min, n=5)

Additions only; no job logic, step, or trigger is changed.
@rubenvdlinde
rubenvdlinde requested a review from Rem-Dam as a code owner August 3, 2026 12:56
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/petstore @ b162ba4

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
test-unit
check-specs
composer ✅ 100/100
npm ✅ 778/778
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-08-03 12:59 UTC

Download the full PDF report from the workflow artifacts.

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.

2 participants