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
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:
@@ -3,13 +3,16 @@ name: CI
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
|
paths-ignore: ["**/*.md"]
|
||||||
pull_request:
|
pull_request:
|
||||||
|
paths-ignore: ["**/*.md"]
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: Lint (ruff)
|
name: Lint (ruff)
|
||||||
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -31,6 +34,11 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
name: Tests (py${{ matrix.python }} / ${{ 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:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -85,6 +93,7 @@ jobs:
|
|||||||
catalog-signature:
|
catalog-signature:
|
||||||
name: Catalog signature
|
name: Catalog signature
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user