From a8da14666cf9caaf50ce85eb1eabe4ee57c4b566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ad=C3=A1mek?= Date: Wed, 26 Aug 2026 22:43:44 +0200 Subject: [PATCH] ci: cap Build & Test at 30 minutes (#4055) ## Summary `Build & Test` has no `timeout-minutes`, so it inherits GitHub's 6h default. A green run takes about 5 to 10 minutes, but a flaky test that leaks a handle (an orphan node process that never exits) hangs the whole job until the 6h kill. That burns a runner and leaves the PR red for hours. This just happened on #4052: node 22 and 26 hung to the 6h limit while node 24 passed in about 10 minutes, and a plain rerun then passed all three in about 5 minutes. Same code, same PR, so it was a flaky hang rather than a real failure. Capping the job at 30 minutes keeps a wide margin over a normal run while failing fast on these hangs. `test-e2e.yml` already sets a step-level timeout, so this follows existing practice. --- .github/workflows/test-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test-ci.yml b/.github/workflows/test-ci.yml index bb363c953924..847cbe3fd9a3 100644 --- a/.github/workflows/test-ci.yml +++ b/.github/workflows/test-ci.yml @@ -18,6 +18,9 @@ jobs: name: Build & Test if: (!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, 'docs:')) runs-on: ${{ matrix.os }} + # A green run is ~5-10 min; without a cap a flaky test that leaks a handle hangs to the + # 6h default and wastes a full runner. 30 min is a wide margin that still fails fast. + timeout-minutes: 30 strategy: fail-fast: false