From 85ed6030c49f960b6a98420361db36fb7895fcaf Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Thu, 20 Aug 2026 11:41:52 +0100 Subject: [PATCH] Use more reasonable timeouts for some jobs --- .github/workflows/build.yml | 18 +++++++++--------- .github/workflows/lint.yml | 2 +- .github/workflows/mypy.yml | 2 +- .../workflows/new-bugs-announce-notifier.yml | 2 +- .github/workflows/require-pr-label.yml | 4 ++-- .github/workflows/reusable-check-html-ids.yml | 2 +- .github/workflows/reusable-cifuzz.yml | 2 +- .github/workflows/reusable-context.yml | 2 +- .github/workflows/reusable-docs.yml | 6 +++--- .github/workflows/reusable-install.yml | 2 +- .github/workflows/reusable-macos.yml | 2 +- .github/workflows/reusable-san.yml | 2 +- .github/workflows/reusable-ubuntu.yml | 2 +- .github/workflows/reusable-wasi.yml | 2 +- .github/workflows/reusable-windows.yml | 2 +- .github/workflows/stale.yml | 2 +- .github/workflows/tail-call.yml | 10 ++-------- .github/workflows/verify-ensurepip-wheels.yml | 2 +- 18 files changed, 30 insertions(+), 36 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d6d61029b89d90d..40f1f903382d492 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,7 +56,7 @@ jobs: runs-on: ubuntu-26.04 container: image: ghcr.io/python/autoconf:2025.01.02.12581854023 - timeout-minutes: 60 + timeout-minutes: 5 needs: build-context if: needs.build-context.outputs.run-tests == 'true' steps: @@ -97,7 +97,7 @@ jobs: # Don't use ubuntu-latest but a specific version to make the job # reproducible: to get the same tools versions (autoconf, aclocal, ...) runs-on: ubuntu-26.04 - timeout-minutes: 60 + timeout-minutes: 30 needs: build-context if: needs.build-context.outputs.run-tests == 'true' steps: @@ -254,7 +254,7 @@ jobs: build-ubuntu-ssltests: name: 'Ubuntu SSL tests' runs-on: ${{ matrix.os }} - timeout-minutes: 60 + timeout-minutes: 10 needs: build-context if: needs.build-context.outputs.run-ubuntu == 'true' strategy: @@ -328,7 +328,7 @@ jobs: name: Android (${{ matrix.arch }}) needs: build-context if: needs.build-context.outputs.run-android == 'true' - timeout-minutes: 60 + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -350,7 +350,7 @@ jobs: name: iOS needs: build-context if: needs.build-context.outputs.run-ios == 'true' - timeout-minutes: 60 + timeout-minutes: 40 runs-on: macos-26 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 @@ -375,7 +375,7 @@ jobs: test-hypothesis: name: "Hypothesis tests on Ubuntu" runs-on: ubuntu-26.04 - timeout-minutes: 60 + timeout-minutes: 30 needs: build-context if: needs.build-context.outputs.run-ubuntu == 'true' env: @@ -479,7 +479,7 @@ jobs: build-asan: name: 'Address sanitizer' runs-on: ${{ matrix.os }} - timeout-minutes: 60 + timeout-minutes: 30 needs: build-context if: needs.build-context.outputs.run-ubuntu == 'true' strategy: @@ -550,7 +550,7 @@ jobs: cross-build-linux: name: Cross build Linux runs-on: ubuntu-26.04 - timeout-minutes: 60 + timeout-minutes: 30 needs: build-context if: needs.build-context.outputs.run-ubuntu == 'true' steps: @@ -632,7 +632,7 @@ jobs: all-required-green: # This job does nothing and is only used for the branch protection name: All required checks pass runs-on: ubuntu-latest - timeout-minutes: 5 + timeout-minutes: 2 needs: - build-context # Transitive dependency, needed to access `run-tests` value - check-docs diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8a79ea20d5f50bc..12bab081d13927f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -16,7 +16,7 @@ concurrency: jobs: lint: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 5 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml index 3cdce4f5952e3d0..f3ef7691eeceae1 100644 --- a/.github/workflows/mypy.yml +++ b/.github/workflows/mypy.yml @@ -50,7 +50,7 @@ jobs: mypy: name: Run mypy on ${{ matrix.target }} runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 5 strategy: fail-fast: false matrix: diff --git a/.github/workflows/new-bugs-announce-notifier.yml b/.github/workflows/new-bugs-announce-notifier.yml index 864d0f48904bcc3..4bdfc7898a29b42 100644 --- a/.github/workflows/new-bugs-announce-notifier.yml +++ b/.github/workflows/new-bugs-announce-notifier.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-slim permissions: issues: read - timeout-minutes: 10 + timeout-minutes: 5 steps: - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: diff --git a/.github/workflows/require-pr-label.yml b/.github/workflows/require-pr-label.yml index 8af254c10786e1b..a6f378d5d1754ee 100644 --- a/.github/workflows/require-pr-label.yml +++ b/.github/workflows/require-pr-label.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-slim permissions: pull-requests: read - timeout-minutes: 10 + timeout-minutes: 2 steps: - name: Check there's no DO-NOT-MERGE @@ -31,7 +31,7 @@ jobs: runs-on: ubuntu-slim permissions: pull-requests: read - timeout-minutes: 10 + timeout-minutes: 2 steps: # Check that the PR is not awaiting changes from the author due to previous review. diff --git a/.github/workflows/reusable-check-html-ids.yml b/.github/workflows/reusable-check-html-ids.yml index bdebacc9eed06bc..dfbfd108bdd48ca 100644 --- a/.github/workflows/reusable-check-html-ids.yml +++ b/.github/workflows/reusable-check-html-ids.yml @@ -13,7 +13,7 @@ jobs: check-html-ids: name: 'Check for removed HTML IDs' runs-on: ubuntu-latest - timeout-minutes: 30 + timeout-minutes: 10 steps: - name: 'Check out PR head' uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/reusable-cifuzz.yml b/.github/workflows/reusable-cifuzz.yml index 0d02232686339bf..0f0228540f604da 100644 --- a/.github/workflows/reusable-cifuzz.yml +++ b/.github/workflows/reusable-cifuzz.yml @@ -20,7 +20,7 @@ jobs: cifuzz: name: ${{ inputs.oss-fuzz-project-name }} (${{ inputs.sanitizer }}) runs-on: ubuntu-latest - timeout-minutes: 60 + timeout-minutes: 40 steps: - name: Build fuzzers (${{ inputs.sanitizer }}) id: build diff --git a/.github/workflows/reusable-context.yml b/.github/workflows/reusable-context.yml index f307326bae41209..a10c3ccc452e44e 100644 --- a/.github/workflows/reusable-context.yml +++ b/.github/workflows/reusable-context.yml @@ -58,7 +58,7 @@ jobs: compute-changes: name: Create context from changed files runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 5 outputs: run-android: ${{ steps.changes.outputs.run-android }} run-ci-fuzz: ${{ steps.changes.outputs.run-ci-fuzz }} diff --git a/.github/workflows/reusable-docs.yml b/.github/workflows/reusable-docs.yml index 6b1a9076c8251b0..1475a34a7aa9e1a 100644 --- a/.github/workflows/reusable-docs.yml +++ b/.github/workflows/reusable-docs.yml @@ -29,7 +29,7 @@ jobs: build-doc: name: 'Docs' runs-on: ubuntu-latest - timeout-minutes: 60 + timeout-minutes: 10 env: branch_base: 'origin/${{ github.event.pull_request.base.ref }}' branch_pr: 'origin/${{ github.event.pull_request.head.ref }}' @@ -115,7 +115,7 @@ jobs: doctest: name: 'Doctest' runs-on: ubuntu-26.04 - timeout-minutes: 60 + timeout-minutes: 15 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: @@ -141,7 +141,7 @@ jobs: check-epub: name: 'Check EPUB' runs-on: ubuntu-latest - timeout-minutes: 30 + timeout-minutes: 10 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: diff --git a/.github/workflows/reusable-install.yml b/.github/workflows/reusable-install.yml index 337da684882d29f..fa3cd312464cf8a 100644 --- a/.github/workflows/reusable-install.yml +++ b/.github/workflows/reusable-install.yml @@ -13,7 +13,7 @@ jobs: build-install-test: name: build, install and test runs-on: ubuntu-26.04-arm - timeout-minutes: 60 + timeout-minutes: 30 env: PYTHONSTRICTEXTENSIONBUILD: 1 steps: diff --git a/.github/workflows/reusable-macos.yml b/.github/workflows/reusable-macos.yml index 5393e9e34040b95..08471c92c336ef9 100644 --- a/.github/workflows/reusable-macos.yml +++ b/.github/workflows/reusable-macos.yml @@ -22,7 +22,7 @@ jobs: build-macos: name: build and test (${{ inputs.os }}) runs-on: ${{ inputs.os }} - timeout-minutes: 60 + timeout-minutes: 30 env: HOMEBREW_NO_ANALYTICS: 1 HOMEBREW_NO_AUTO_UPDATE: 1 diff --git a/.github/workflows/reusable-san.yml b/.github/workflows/reusable-san.yml index 133b8ff8d7579b4..101db1b9f107586 100644 --- a/.github/workflows/reusable-san.yml +++ b/.github/workflows/reusable-san.yml @@ -28,7 +28,7 @@ jobs: || '' }} runs-on: ubuntu-26.04 - timeout-minutes: 60 + timeout-minutes: 40 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: diff --git a/.github/workflows/reusable-ubuntu.yml b/.github/workflows/reusable-ubuntu.yml index 2129f2f6d6e926b..db84ee3ea444355 100644 --- a/.github/workflows/reusable-ubuntu.yml +++ b/.github/workflows/reusable-ubuntu.yml @@ -33,7 +33,7 @@ jobs: build-ubuntu-reusable: name: build and test (${{ inputs.os }}) runs-on: ${{ inputs.os }} - timeout-minutes: 60 + timeout-minutes: 30 env: OPENSSL_VER: 3.5.7 PYTHONSTRICTEXTENSIONBUILD: 1 diff --git a/.github/workflows/reusable-wasi.yml b/.github/workflows/reusable-wasi.yml index b0dda62d0b291c2..1c5277f041172fd 100644 --- a/.github/workflows/reusable-wasi.yml +++ b/.github/workflows/reusable-wasi.yml @@ -13,7 +13,7 @@ jobs: build-wasi-reusable: name: 'build and test' runs-on: ubuntu-26.04-arm - timeout-minutes: 60 + timeout-minutes: 30 env: WASMTIME_VERSION: 38.0.3 CROSS_BUILD_WASI: cross-build/wasm32-wasip1 diff --git a/.github/workflows/reusable-windows.yml b/.github/workflows/reusable-windows.yml index b1b711be4538fda..b6c0b0113e29e69 100644 --- a/.github/workflows/reusable-windows.yml +++ b/.github/workflows/reusable-windows.yml @@ -27,7 +27,7 @@ jobs: build: name: Build and test (${{ inputs.arch }}, ${{ inputs.interpreter }}) runs-on: ${{ inputs.arch == 'arm64' && 'windows-11-arm' || 'windows-2025' }} - timeout-minutes: 60 + timeout-minutes: ${{ inputs.free-threading && 60 || 40 }} env: ARCH: ${{ inputs.arch }} steps: diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 0283e9f621dcf05..5724de342fc2285 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -14,7 +14,7 @@ jobs: permissions: actions: write pull-requests: write - timeout-minutes: 10 + timeout-minutes: 5 steps: - name: "Check PRs" diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index 81e8235f236ea70..eab9f19c2a440be 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -26,7 +26,7 @@ jobs: macos: name: ${{ matrix.target }} runs-on: ${{ matrix.runner }} - timeout-minutes: 60 + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -39,9 +39,6 @@ jobs: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: '3.11' - name: Install dependencies run: | brew update @@ -60,7 +57,7 @@ jobs: linux: name: ${{ matrix.target }} runs-on: ${{ matrix.runner }} - timeout-minutes: 60 + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -78,9 +75,6 @@ jobs: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: '3.11' - name: Build run: | # On ubuntu-26.04 image, clang is clang-21 by default diff --git a/.github/workflows/verify-ensurepip-wheels.yml b/.github/workflows/verify-ensurepip-wheels.yml index 7def8c9e78abb8d..931966e36b2ecb7 100644 --- a/.github/workflows/verify-ensurepip-wheels.yml +++ b/.github/workflows/verify-ensurepip-wheels.yml @@ -23,7 +23,7 @@ concurrency: jobs: verify: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 5 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: