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
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, ...)
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, ...)
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)' || '' }}
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
with:
arch: ${{ matrix.arch }}
- build_macos:
+ build-macos:
name: >-
macOS
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
free-threading: ${{ matrix.free-threading }}
os: ${{ matrix.os }}
- build_ubuntu:
+ build-ubuntu:
name: >-
Ubuntu
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
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
- 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
name: hypothesis-example-db
path: .hypothesis/examples/
-
- build_asan:
+ build-asan:
name: 'Address sanitizer'
runs-on: ubuntu-22.04
timeout-minutes: 60
- name: Tests
run: xvfb-run make buildbottest TESTOPTS="-j4 -uall,-cpu"
- build_tsan:
+ build-tsan:
name: >-
Thread sanitizer
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
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)
${{
needs.build-context.outputs.run-tests != 'true'
&& '
- check_autoconf_regen,
- check_generated_files,
- build_macos,
- build_ubuntu,
- build_ubuntu_ssltests,
- 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,
+ build-windows,
'
|| ''
}}