Skip to content

Add timeout-minutes to all workflow jobs#19

Merged
iainmcgin merged 2 commits intomainfrom
chore/ci-job-timeouts
Mar 30, 2026
Merged

Add timeout-minutes to all workflow jobs#19
iainmcgin merged 2 commits intomainfrom
chore/ci-job-timeouts

Conversation

@iainmcgin
Copy link
Copy Markdown
Collaborator

Caps job runtime to make compute-abuse via fork PRs less attractive. Default GitHub Actions timeout is 360 min (6 hours); this cuts it to 10-15 min per job.

Job Timeout Observed (warm / cold)
conformance 15 min ~2m25s / —
lint-and-test, msrv-check, check-nostd, check-generated-code 10 min <1 min / ~2 min
lint-markdown 10 min ~15s / —
CLAAssistant 5 min ~7s (API calls only)

Headroom is ~4× observed cold-cache durations so legitimate PRs should never hit the cap.

Context: prep for relaxing the fork-PR approval requirement from "all external contributors" to "first-time contributors". The pull_request CI is already sandboxed (no secrets, read-only GITHUB_TOKEN, cache-isolated), so the residual risk is compute abuse — this bounds that.

Default GitHub Actions job timeout is 360 minutes. With these caps,
a fork PR that tries to abuse compute (crypto mining via build.rs or
test code) gets cut off at 10-15 min instead of 6 hours.

Limits are ~4x the observed cold-cache durations:
  conformance:  15 min  (observed ~2m25s warm)
  all other CI: 10 min  (observed <1 min warm, ~2 min cold)
  CLAAssistant:  5 min  (API calls only, observed ~7s)
@iainmcgin iainmcgin marked this pull request as ready for review March 30, 2026 17:28
@iainmcgin iainmcgin requested a review from rpb-ant March 30, 2026 17:28
@iainmcgin iainmcgin enabled auto-merge (squash) March 30, 2026 17:29
@iainmcgin iainmcgin merged commit d518df5 into main Mar 30, 2026
7 checks passed
@iainmcgin iainmcgin deleted the chore/ci-job-timeouts branch March 30, 2026 17:33
@github-actions github-actions bot locked and limited conversation to collaborators Mar 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants