From 583e4e4af0be4fe0435f0aa7b8f8061821554614 Mon Sep 17 00:00:00 2001 From: the_og Date: Thu, 13 Aug 2026 16:46:10 +0000 Subject: [PATCH] ci: skip test matrix on docs-only changes + add job timeouts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - paths-ignore '**/*.md' on push/pull_request so a CHANGELOG/README-only PR doesn't spin up the (self-hosted, sometimes-offline) Windows test job. - timeout-minutes on lint (10) / test (15) / catalog-signature (10) so a job that hangs mid-run fails instead of hanging forever. Note: timeout-minutes counts from job start, so it does not rescue a job stuck 'Waiting to run' when the Windows runner is offline — paths-ignore covers the docs case; code PRs still need the runner up. --- .github/workflows/ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b2cd6c4..391b8be 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,13 +3,16 @@ name: CI on: push: branches: [main] + paths-ignore: ["**/*.md"] pull_request: + paths-ignore: ["**/*.md"] workflow_dispatch: jobs: lint: runs-on: ubuntu-latest name: Lint (ruff) + timeout-minutes: 10 steps: - name: Checkout uses: actions/checkout@v4 @@ -31,6 +34,11 @@ jobs: test: runs-on: ${{ matrix.os }} name: Tests (py${{ matrix.python }} / ${{ matrix.os }}) + # Guards against a job that hangs mid-run (e.g. a wedged test). Note: this + # counts from when a runner PICKS UP the job, so it does not rescue a job + # stuck "Waiting to run" because the self-hosted Windows runner is offline — + # for that, bring the runner back or skip via paths-ignore (docs). + timeout-minutes: 15 strategy: fail-fast: false matrix: @@ -85,6 +93,7 @@ jobs: catalog-signature: name: Catalog signature runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v4 -- 2.54.0