From 3092c0fe3b6a87e97796743511d0864ab3a49aef Mon Sep 17 00:00:00 2001 From: AminDhouib Date: Tue, 15 Sep 2026 20:25:12 -0400 Subject: [PATCH] ci: add per-job timeout-minutes to every workflow job No job in this repository declared timeout-minutes, so a wedged step could hold a runner until the 6 h Actions default. Each job now carries an explicit ceiling. The rule is 3 x the observed p90 duration rounded up to the nearest 5 minutes; every job below was unobserved in the 72 h of run history, so each takes its class default. .github/workflows/ci.yml build-and-import 30 class default (build) e2e-smoke 45 class default (e2e) lint 15 class default (lint) models-drift 30 class default (other) unit-test 45 class default (e2e) .github/workflows/publish.yml build-and-publish 30 class default (build) .github/workflows/spec-drift.yml spec-drift 30 class default (other) No concurrency edit was planned for this repository. ci.yml already declares group: ci-${{ github.ref }}, cancel-in-progress: true. --- .github/workflows/ci.yml | 5 +++++ .github/workflows/publish.yml | 1 + .github/workflows/spec-drift.yml | 1 + 3 files changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d8273f..851940b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,6 +12,7 @@ concurrency: jobs: lint: runs-on: ubuntu-latest + timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -31,6 +32,7 @@ jobs: # must produce a zero diff — this fails if someone hand-edited the file or # updated the spec without re-running the generator. runs-on: ubuntu-latest + timeout-minutes: 30 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -49,6 +51,7 @@ jobs: unit-test: runs-on: ubuntu-latest + timeout-minutes: 45 strategy: fail-fast: false matrix: @@ -65,6 +68,7 @@ jobs: build-and-import: runs-on: ubuntu-latest + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -99,6 +103,7 @@ jobs: e2e-smoke: runs-on: ubuntu-latest + timeout-minutes: 45 needs: [lint, unit-test] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8b9f731..96003e4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,6 +12,7 @@ on: jobs: build-and-publish: runs-on: ubuntu-latest + timeout-minutes: 30 environment: pypi permissions: id-token: write # required for PyPI trusted publishing diff --git a/.github/workflows/spec-drift.yml b/.github/workflows/spec-drift.yml index ddda2d5..396adef 100644 --- a/.github/workflows/spec-drift.yml +++ b/.github/workflows/spec-drift.yml @@ -16,6 +16,7 @@ permissions: jobs: spec-drift: runs-on: ubuntu-latest + timeout-minutes: 30 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5