ci: skip test matrix on docs-only changes + add job timeouts
CI / Lint (ruff) (pull_request) Successful in 7s
CI / Tests (py3.10 / ubuntu-latest) (pull_request) Successful in 13s
CI / Tests (py3.12 / windows-latest) (pull_request) Successful in 27s
CI / Tests (py3.12 / ubuntu-latest) (pull_request) Successful in 12s
CI / Tests (py3.13 / ubuntu-latest) (pull_request) Successful in 13s
CI / Catalog signature (pull_request) Successful in 7s

- 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.
This commit is contained in:
the_og
2026-08-13 16:46:10 +00:00
parent d4ce2647ae
commit 583e4e4af0
+9
View File
@@ -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