Skip to content

ci: bound every unbounded CI job with timeout-minutes - #105

Merged
rubenvdlinde merged 1 commit into
developmentfrom
ci/bound-job-timeouts
Aug 3, 2026
Merged

ci: bound every unbounded CI job with timeout-minutes#105
rubenvdlinde merged 1 commit into
developmentfrom
ci/bound-job-timeouts

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

What

Adds timeout-minutes to every CI job in this repo that was running unbounded.

Why

A job without timeout-minutes inherits GitHub's 360-minute default. A runner that hangs — a wedged npm ci, a network stall, a container that never starts — burns six hours of Actions minutes before it is reaped, and the PR sits pending the whole time.

How the values were picked

Bounds come from observed run durations across the fleet, not from guesses, and are left deliberately loose. A timeout that fires under normal contention is worse than no timeout, because it converts a slow run into a phantom defect.

job observed bound
pull-request-lint-check.yamllint-check n=176, median 0.6 min, max 1.4 min 15
exporter-e2e.ymlexporter-e2e n=30, max 0.8 min 20

Scope

Additions only, workflow files only. Job sets are unchanged — every touched file was re-parsed with yaml.safe_load and its job list compared against the base commit.

Jobs that only call a reusable workflow (job-level uses:) are intentionally untouched: they inherit their bound from the called workflow and GitHub does not honour timeout-minutes on them.

Jobs without timeout-minutes fall back to GitHub's 360-minute default, so
a hung runner burns six hours of Actions minutes before it is reaped.

Bounds are derived from observed run durations and left deliberately loose:
a timeout that fires under normal contention is worse than no timeout,
because it turns a slow run into a phantom defect.

Jobs that only call a reusable workflow (job-level `uses:`) are untouched --
they inherit their bound from the called workflow.
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openbuild @ dc02382

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 100/100
npm ✅ 662/662
PHPUnit
Newman ⏭️
Playwright ⏭️

Coverage: 89.4% (17/19 statements)


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

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 157340f into development Aug 3, 2026
31 checks passed
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