4343 if : fromJSON(needs.build-context.outputs.run-docs)
4444 uses : ./.github/workflows/reusable-docs.yml
4545
46- check_autoconf_regen :
46+ check-autoconf-regen :
4747 name : ' Check if Autoconf files are up to date'
4848 # Don't use ubuntu-latest but a specific version to make the job
4949 # reproducible: to get the same tools versions (autoconf, aclocal, ...)
8686 exit 1
8787 fi
8888
89- check_generated_files :
89+ check-generated-files :
9090 name : ' Check if generated files are up to date'
9191 # Don't use ubuntu-latest but a specific version to make the job
9292 # reproducible: to get the same tools versions (autoconf, aclocal, ...)
@@ -147,7 +147,7 @@ jobs:
147147 if : github.event_name == 'pull_request' # $GITHUB_EVENT_NAME
148148 run : make check-c-globals
149149
150- build_windows :
150+ build-windows :
151151 name : >-
152152 Windows
153153 ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
@@ -179,12 +179,13 @@ jobs:
179179 arch : ${{ matrix.arch }}
180180 free-threading : ${{ matrix.free-threading }}
181181
182- build_windows_msi :
182+ build-windows-msi :
183183 name : >- # ${{ '' } is a hack to nest jobs under the same sidebar category
184184 Windows MSI${{ '' }}
185185 needs : build-context
186186 if : fromJSON(needs.build-context.outputs.run-windows-msi)
187187 strategy :
188+ fail-fast : false
188189 matrix :
189190 arch :
190191 - x86
@@ -194,7 +195,7 @@ jobs:
194195 with :
195196 arch : ${{ matrix.arch }}
196197
197- build_macos :
198+ build-macos :
198199 name : >-
199200 macOS
200201 ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
@@ -228,14 +229,15 @@ jobs:
228229 free-threading : ${{ matrix.free-threading }}
229230 os : ${{ matrix.os }}
230231
231- build_ubuntu :
232+ build-ubuntu :
232233 name : >-
233234 Ubuntu
234235 ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
235236 ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }}
236237 needs : build-context
237238 if : needs.build-context.outputs.run-tests == 'true'
238239 strategy :
240+ fail-fast : false
239241 matrix :
240242 bolt :
241243 - false
@@ -245,13 +247,13 @@ jobs:
245247 - true
246248 os :
247249 - ubuntu-24.04
248- - ubuntu-22 .04-arm
250+ - ubuntu-24 .04-arm
249251 exclude :
250252 # Do not test BOLT with free-threading, to conserve resources
251253 - bolt : true
252254 free-threading : true
253255 # BOLT currently crashes during instrumentation on aarch64
254- - os : ubuntu-22 .04-arm
256+ - os : ubuntu-24 .04-arm
255257 bolt : true
256258 uses : ./.github/workflows/reusable-ubuntu.yml
257259 with :
@@ -260,7 +262,7 @@ jobs:
260262 free-threading : ${{ matrix.free-threading }}
261263 os : ${{ matrix.os }}
262264
263- build_ubuntu_ssltests :
265+ build-ubuntu-ssltests :
264266 name : ' Ubuntu SSL tests with OpenSSL'
265267 runs-on : ${{ matrix.os }}
266268 timeout-minutes : 60
@@ -322,15 +324,15 @@ jobs:
322324 - name : SSL tests
323325 run : ./python Lib/test/ssltests.py
324326
325- build_wasi :
327+ build-wasi :
326328 name : ' WASI'
327329 needs : build-context
328330 if : needs.build-context.outputs.run-tests == 'true'
329331 uses : ./.github/workflows/reusable-wasi.yml
330332 with :
331333 config_hash : ${{ needs.build-context.outputs.config-hash }}
332334
333- test_hypothesis :
335+ test-hypothesis :
334336 name : " Hypothesis tests on Ubuntu"
335337 runs-on : ubuntu-24.04
336338 timeout-minutes : 60
@@ -445,14 +447,14 @@ jobs:
445447 name : hypothesis-example-db
446448 path : ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/examples/
447449
448-
449- build_asan :
450+ build-asan :
450451 name : ' Address sanitizer'
451452 runs-on : ${{ matrix.os }}
452453 timeout-minutes : 60
453454 needs : build-context
454455 if : needs.build-context.outputs.run-tests == 'true'
455456 strategy :
457+ fail-fast : false
456458 matrix :
457459 os : [ubuntu-24.04]
458460 env :
@@ -509,13 +511,14 @@ jobs:
509511 - name : Tests
510512 run : xvfb-run make ci
511513
512- build_tsan :
514+ build-tsan :
513515 name : >-
514516 Thread sanitizer
515517 ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
516518 needs : build-context
517519 if : needs.build-context.outputs.run-tests == 'true'
518520 strategy :
521+ fail-fast : false
519522 matrix :
520523 free-threading :
521524 - false
@@ -528,6 +531,7 @@ jobs:
528531 cross-build-linux :
529532 name : Cross build Linux
530533 runs-on : ubuntu-latest
534+ timeout-minutes : 60
531535 needs : build-context
532536 if : needs.build-context.outputs.run-tests == 'true'
533537 steps :
@@ -592,8 +596,8 @@ jobs:
592596 output-sarif : true
593597 sanitizer : ${{ matrix.sanitizer }}
594598 - name : Upload crash
595- uses : actions/upload-artifact@v4
596599 if : failure() && steps.build.outcome == 'success'
600+ uses : actions/upload-artifact@v4
597601 with :
598602 name : ${{ matrix.sanitizer }}-artifacts
599603 path : ./out/artifacts
@@ -606,36 +610,35 @@ jobs:
606610
607611 all-required-green : # This job does nothing and is only used for the branch protection
608612 name : All required checks pass
609- if : always()
610-
613+ runs-on : ubuntu-latest
614+ timeout-minutes : 5
611615 needs :
612616 - build-context # Transitive dependency, needed to access `run-tests` value
613617 - check-docs
614- - check_autoconf_regen
615- - check_generated_files
616- - build_macos
617- - build_ubuntu
618- - build_ubuntu_ssltests
619- - build_wasi
620- - build_windows
621- - build_windows_msi
618+ - check-autoconf-regen
619+ - check-generated-files
620+ - build-windows
621+ - build-windows-msi
622+ - build-macos
623+ - build-ubuntu
624+ - build-ubuntu-ssltests
625+ - build-wasi
626+ - test-hypothesis
627+ - build-asan
628+ - build-tsan
622629 - cross-build-linux
623- - test_hypothesis
624- - build_asan
625- - build_tsan
626630 - cifuzz
627-
628- runs-on : ubuntu-latest
631+ if : always()
629632
630633 steps :
631634 - name : Check whether the needed jobs succeeded or failed
632635 uses : re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe
633636 with :
634637 allowed-failures : >-
635- build_ubuntu_ssltests,
636- build_windows_msi,
638+ build-windows-msi,
639+ build-ubuntu-ssltests,
640+ test-hypothesis,
637641 cifuzz,
638- test_hypothesis,
639642 allowed-skips : >-
640643 ${{
641644 !fromJSON(needs.build-context.outputs.run-docs)
@@ -647,23 +650,23 @@ jobs:
647650 ${{
648651 needs.build-context.outputs.run-tests != 'true'
649652 && '
650- check_autoconf_regen ,
651- check_generated_files ,
652- build_macos ,
653- build_ubuntu ,
654- build_ubuntu_ssltests ,
655- build_wasi ,
656- build_asan ,
657- build_tsan ,
658- test_hypothesis ,
653+ check-autoconf-regen ,
654+ check-generated-files ,
655+ build-macos ,
656+ build-ubuntu ,
657+ build-ubuntu-ssltests ,
658+ build-wasi ,
659+ test-hypothesis ,
660+ build-asan ,
661+ build-tsan ,
659662 cross-build-linux,
660663 '
661664 || ''
662665 }}
663666 ${{
664667 !fromJSON(needs.build-context.outputs.run-windows-tests)
665668 && '
666- build_windows ,
669+ build-windows ,
667670 '
668671 || ''
669672 }}
0 commit comments