From 1c3e33c688fba7aeb7e527b591986e60e9996397 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Fri, 21 Feb 2025 15:11:26 +0000 Subject: [PATCH] [3.12] GH-103180: Set a timeout for every job in GitHub Actions (GH-130375) (cherry picked from commit d0a1e5c222f9f43b492b28806e2a185a50d64500) Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- .github/workflows/build.yml | 80 ++++++++++++----------- .github/workflows/documentation-links.yml | 1 + .github/workflows/reusable-docs.yml | 2 +- .github/workflows/reusable-macos.yml | 4 +- .github/workflows/reusable-tsan.yml | 2 +- .github/workflows/reusable-ubuntu.yml | 4 +- .github/workflows/stale.yml | 1 - 7 files changed, 49 insertions(+), 45 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a8da513d2528d..d0d64c19ce5e9b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,7 @@ jobs: if: fromJSON(needs.build-context.outputs.run-docs) uses: ./.github/workflows/reusable-docs.yml - check_abi: + check-abi: name: 'Check if the ABI has changed' runs-on: ubuntu-22.04 needs: build-context @@ -88,7 +88,7 @@ jobs: name: abi-data path: ./Doc/data/*.abi - check_autoconf_regen: + check-autoconf-regen: name: 'Check if Autoconf files are up to date' # Don't use ubuntu-latest but a specific version to make the job # reproducible: to get the same tools versions (autoconf, aclocal, ...) @@ -131,7 +131,7 @@ jobs: exit 1 fi - check_generated_files: + check-generated-files: name: 'Check if generated files are up to date' # Don't use ubuntu-latest but a specific version to make the job # reproducible: to get the same tools versions (autoconf, aclocal, ...) @@ -195,7 +195,7 @@ jobs: if: github.event_name == 'pull_request' # $GITHUB_EVENT_NAME run: make check-c-globals - build_windows: + build-windows: name: >- Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} @@ -215,7 +215,7 @@ jobs: arch: ${{ matrix.arch }} free-threading: ${{ matrix.free-threading }} - build_windows_msi: + build-windows-msi: name: >- # ${{ '' } is a hack to nest jobs under the same sidebar category Windows MSI${{ '' }} needs: build-context @@ -230,7 +230,7 @@ jobs: with: arch: ${{ matrix.arch }} - build_macos: + build-macos: name: >- macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} @@ -264,7 +264,7 @@ jobs: free-threading: ${{ matrix.free-threading }} os: ${{ matrix.os }} - build_ubuntu: + build-ubuntu: name: >- Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} @@ -280,7 +280,7 @@ jobs: config_hash: ${{ needs.build-context.outputs.config-hash }} free-threading: ${{ matrix.free-threading }} - build_ubuntu_ssltests: + build-ubuntu-ssltests: name: 'Ubuntu SSL tests with OpenSSL' runs-on: ${{ matrix.os }} timeout-minutes: 60 @@ -341,7 +341,7 @@ jobs: - name: SSL tests run: ./python Lib/test/ssltests.py - test_hypothesis: + test-hypothesis: name: "Hypothesis tests on Ubuntu" runs-on: ubuntu-24.04 timeout-minutes: 60 @@ -455,8 +455,7 @@ jobs: name: hypothesis-example-db path: .hypothesis/examples/ - - build_asan: + build-asan: name: 'Address sanitizer' runs-on: ubuntu-22.04 timeout-minutes: 60 @@ -519,7 +518,7 @@ jobs: - name: Tests run: xvfb-run make buildbottest TESTOPTS="-j4 -uall,-cpu" - build_tsan: + build-tsan: name: >- Thread sanitizer ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} @@ -536,32 +535,31 @@ jobs: all-required-green: # This job does nothing and is only used for the branch protection name: All required checks pass - if: always() - + runs-on: ubuntu-latest + timeout-minutes: 5 needs: - build-context # Transitive dependency, needed to access `run-tests` value - check-docs - - check_autoconf_regen - - check_generated_files - - build_macos - - build_ubuntu - - build_ubuntu_ssltests - - build_windows - - build_windows_msi - - test_hypothesis - - build_asan - - build_tsan - - runs-on: ubuntu-latest + - check-autoconf-regen + - check-generated-files + - build-windows + - build-windows-msi + - build-macos + - build-ubuntu + - build-ubuntu-ssltests + - test-hypothesis + - build-asan + - build-tsan + if: always() steps: - name: Check whether the needed jobs succeeded or failed uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe with: allowed-failures: >- - build_ubuntu_ssltests, - build_windows_msi, - test_hypothesis, + build-windows-msi, + build-ubuntu-ssltests, + test-hypothesis, allowed-skips: >- ${{ !fromJSON(needs.build-context.outputs.run-docs) @@ -573,15 +571,21 @@ jobs: ${{ needs.build-context.outputs.run-tests != 'true' && ' - check_autoconf_regen, - check_generated_files, - build_macos, - build_ubuntu, - build_ubuntu_ssltests, - build_windows, - build_asan, - build_tsan, - test_hypothesis, + check-autoconf-regen, + check-generated-files, + build-macos, + build-ubuntu, + build-ubuntu-ssltests, + test-hypothesis, + build-asan, + build-tsan, + ' + || '' + }} + ${{ + !fromJSON(needs.build-context.outputs.run-windows-tests) + && ' + build-windows, ' || '' }} diff --git a/.github/workflows/documentation-links.yml b/.github/workflows/documentation-links.yml index fdb4b9aa29a7c8..a09a30587b35eb 100644 --- a/.github/workflows/documentation-links.yml +++ b/.github/workflows/documentation-links.yml @@ -19,6 +19,7 @@ jobs: runs-on: ubuntu-latest permissions: pull-requests: write + timeout-minutes: 5 steps: - uses: readthedocs/actions/preview@v1 diff --git a/.github/workflows/reusable-docs.yml b/.github/workflows/reusable-docs.yml index d01c5e30a9b9fa..2523a05cbadefc 100644 --- a/.github/workflows/reusable-docs.yml +++ b/.github/workflows/reusable-docs.yml @@ -12,7 +12,7 @@ concurrency: cancel-in-progress: true jobs: - build_doc: + build-doc: name: 'Docs' runs-on: ubuntu-latest timeout-minutes: 60 diff --git a/.github/workflows/reusable-macos.yml b/.github/workflows/reusable-macos.yml index 918f0e8856a4e2..bb6366100ef0fb 100644 --- a/.github/workflows/reusable-macos.yml +++ b/.github/workflows/reusable-macos.yml @@ -19,8 +19,9 @@ env: FORCE_COLOR: 1 jobs: - build_macos: + build-macos: name: build and test (${{ inputs.os }}) + runs-on: ${{ inputs.os }} timeout-minutes: 60 env: HOMEBREW_NO_ANALYTICS: 1 @@ -28,7 +29,6 @@ jobs: HOMEBREW_NO_INSTALL_CLEANUP: 1 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 PYTHONSTRICTEXTENSIONBUILD: 1 - runs-on: ${{ inputs.os }} steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/reusable-tsan.yml b/.github/workflows/reusable-tsan.yml index d53e9d5b38ed00..cd3769e87fe7ad 100644 --- a/.github/workflows/reusable-tsan.yml +++ b/.github/workflows/reusable-tsan.yml @@ -16,7 +16,7 @@ env: FORCE_COLOR: 1 jobs: - build_tsan_reusable: + build-tsan-reusable: name: 'Thread sanitizer' runs-on: ubuntu-24.04 timeout-minutes: 60 diff --git a/.github/workflows/reusable-ubuntu.yml b/.github/workflows/reusable-ubuntu.yml index 620b3cf0d2830b..299eea8b38ebe9 100644 --- a/.github/workflows/reusable-ubuntu.yml +++ b/.github/workflows/reusable-ubuntu.yml @@ -16,10 +16,10 @@ env: FORCE_COLOR: 1 jobs: - build_ubuntu_reusable: + build-ubuntu-reusable: name: 'build and test' - timeout-minutes: 60 runs-on: ${{ matrix.os }} + timeout-minutes: 60 strategy: fail-fast: false matrix: diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 3f175a81605bfb..1460bbb215b80a 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -7,7 +7,6 @@ on: jobs: stale: if: github.repository_owner == 'python' - runs-on: ubuntu-latest permissions: pull-requests: write pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy