From 4e24b2098aa7bba527c248350e1275298324e8cf Mon Sep 17 00:00:00 2001 From: miguelgfierro Date: Thu, 23 Jul 2026 12:01:59 +0200 Subject: [PATCH] ci: cap every job with a timeout A job with no timeout runs to GitHub's 6-hour default when it hangs, billing 360 Actions minutes from one stuck step. Sized off measured runtimes. --- .github/workflows/docker-publish.yaml | 1 + .github/workflows/pr-gate.yaml | 6 ++++++ .github/workflows/publish-sdks.yaml | 2 ++ 3 files changed, 9 insertions(+) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 8328abf..910d9e2 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -64,6 +64,7 @@ jobs: publish: name: Build + push (linux/amd64+arm64) runs-on: ubuntu-latest + timeout-minutes: 30 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/pr-gate.yaml b/.github/workflows/pr-gate.yaml index f56bb4c..7d2ba9c 100644 --- a/.github/workflows/pr-gate.yaml +++ b/.github/workflows/pr-gate.yaml @@ -43,6 +43,7 @@ jobs: lint: name: Lint runs-on: ubuntu-latest + timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v5 @@ -75,6 +76,7 @@ jobs: typecheck: name: Typecheck (advisory) runs-on: ubuntu-latest + timeout-minutes: 15 continue-on-error: true steps: - uses: actions/checkout@v4 @@ -106,6 +108,7 @@ jobs: unit: name: Unit tests runs-on: ubuntu-latest + timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v5 @@ -191,6 +194,7 @@ jobs: docker-build: name: Docker build smoke (single-arch) runs-on: ubuntu-latest + timeout-minutes: 20 needs: [lint, unit] steps: - uses: actions/checkout@v4 @@ -221,6 +225,7 @@ jobs: sdk-python: name: SDK Python runs-on: ubuntu-latest + timeout-minutes: 15 defaults: run: working-directory: sdks/python @@ -242,6 +247,7 @@ jobs: sdk-java: name: SDK Java (25 + Spring Boot 3.5.9) runs-on: ubuntu-latest + timeout-minutes: 15 defaults: run: working-directory: sdks/java diff --git a/.github/workflows/publish-sdks.yaml b/.github/workflows/publish-sdks.yaml index 630b336..08d7b2e 100644 --- a/.github/workflows/publish-sdks.yaml +++ b/.github/workflows/publish-sdks.yaml @@ -57,6 +57,7 @@ jobs: if: ${{ github.event_name == 'push' || github.event.inputs.java != 'false' }} name: Publish flycanon-sdk (Java) to GitHub Packages runs-on: ubuntu-latest + timeout-minutes: 15 defaults: run: working-directory: sdks/java @@ -115,6 +116,7 @@ jobs: if: ${{ github.event_name == 'push' || github.event.inputs.python != 'false' }} name: Publish flycanon-sdk (Python) runs-on: ubuntu-latest + timeout-minutes: 15 defaults: run: working-directory: sdks/python