From 3037c9ea1a1cdb2e174194516276b871eb485fa4 Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Mon, 3 Aug 2026 14:52:12 +0200 Subject: [PATCH] ci: bound every unbounded CI job with timeout-minutes 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/workflows/exporter-e2e.yml | 2 ++ .github/workflows/pull-request-lint-check.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/exporter-e2e.yml b/.github/workflows/exporter-e2e.yml index c4d176845..e3cbea903 100644 --- a/.github/workflows/exporter-e2e.yml +++ b/.github/workflows/exporter-e2e.yml @@ -19,6 +19,8 @@ permissions: jobs: exporter-e2e: runs-on: ubuntu-latest + # Observed over 30 runs: max 0.8 min. + timeout-minutes: 20 steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/pull-request-lint-check.yaml b/.github/workflows/pull-request-lint-check.yaml index fa2776ba0..4a02c7797 100644 --- a/.github/workflows/pull-request-lint-check.yaml +++ b/.github/workflows/pull-request-lint-check.yaml @@ -10,6 +10,8 @@ on: jobs: lint-check: runs-on: ubuntu-latest + # Observed fleet-wide over 176 runs: median 0.6 min, max 1.4 min. + timeout-minutes: 15 steps: - name: Checkout repository