Skip to content

ci: cap every CI job with timeout-minutes - #415

Merged
privateip merged 1 commit into
mainfrom
ci/job-timeout-minutes
Aug 16, 2026
Merged

ci: cap every CI job with timeout-minutes#415
privateip merged 1 commit into
mainfrom
ci/job-timeout-minutes

Conversation

@privateip

@privateip privateip commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Summary

PR #411's Lint job hung 6 hours on apt-get install clang-18 llvm-18 linux-libc-dev, stuck against a flaky mirror.

GitHub's default 360-minute job timeout eventually cancelled it. test-e2e needs lint, so it sat SKIPPED the whole time.

No job in ci.yaml sets timeout-minutes. Any hang, anywhere, blocks a PR for hours with no signal something is wrong.

This adds timeout-minutes to every job, sized against observed run times (Build ~2m, Unit Tests ~1.5m, Unit Tests (root) ~1m, Lint ~3m, E2E ~5m):

  • lint, test-unit, test-unit-root, build: 15 minutes
  • test-e2e: 25 minutes

Test plan

Lint hung for 6 hours on PR 411 (apt-get stalling against a flaky
mirror) until GitHub's default 360-minute job timeout finally killed
it, and because test-e2e needs lint, it sat SKIPPED the whole time
too. No job here previously set an explicit cap, so any future hang
anywhere blocks a PR for hours before anyone notices instead of
failing fast.

Caps are generous relative to observed run times (Build ~2m, Unit
Tests ~1.5m, Unit Tests (root) ~1m, Lint ~3m, E2E ~5m): 15 minutes for
lint/build/unit jobs, 25 for e2e.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@privateip
privateip requested a review from a team as a code owner August 16, 2026 13:41
@privateip
privateip merged commit d543f43 into main Aug 16, 2026
11 checks passed
@privateip
privateip deleted the ci/job-timeout-minutes branch August 16, 2026 14:18
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