From d31d03571dd9d5eac70712982175bc44a25d0677 Mon Sep 17 00:00:00 2001 From: fujibee Date: Sun, 21 Jun 2026 23:31:25 -0700 Subject: [PATCH] ci(tests): bound the bats job with timeout-minutes: 15 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The required bats job (ubuntu/macos) had no timeout, so a hung runner or test could pin the REQUIRED status check for GitHub's 6h default — observed with a macOS runner stuck in_progress for 30+ min, blocking a release PR. The suite normally finishes in ~5 min; 15 fails fast and is re-runnable. bats-windows already had its own timeout. --- .github/workflows/tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bed4c35..c0c4e3a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -80,6 +80,11 @@ jobs: # block the PR). When changes failed, docs_only is empty → heavy steps run. if: ${{ !cancelled() }} runs-on: ${{ matrix.os }} + # Bound a hung runner/test: the suite normally finishes in ~5 min, so a job + # still running at 15 fails fast (and is re-runnable) instead of pinning this + # REQUIRED check for the GitHub default of 6h — seen with a stalled macOS + # runner. bats-windows already sets its own timeout; this covers ubuntu/macos. + timeout-minutes: 15 strategy: # Cover both GNU (Linux) and BSD (macOS) userlands — the scripts shell out # to sed/stat/mktemp/ps etc. whose flags differ between them.