5353 name : ' Check if Autoconf files are up to date'
5454 # Don't use ubuntu-latest but a specific version to make the job
5555 # reproducible: to get the same tools versions (autoconf, aclocal, ...)
56- runs-on : ubuntu-24 .04
56+ runs-on : ubuntu-26 .04
5757 container :
5858 image : ghcr.io/python/autoconf:2025.01.02.12581854023
5959 timeout-minutes : 60
9696 name : ' Check if generated files are up to date'
9797 # Don't use ubuntu-latest but a specific version to make the job
9898 # reproducible: to get the same tools versions (autoconf, aclocal, ...)
99- runs-on : ubuntu-24 .04
99+ runs-on : ubuntu-26 .04
100100 timeout-minutes : 60
101101 needs : build-context
102102 if : needs.build-context.outputs.run-tests == 'true'
@@ -239,18 +239,18 @@ jobs:
239239 - false
240240 - true
241241 os :
242- - ubuntu-24 .04
243- - ubuntu-24 .04-arm
242+ - ubuntu-26 .04
243+ - ubuntu-26 .04-arm
244244 exclude :
245245 # Do not test BOLT with free-threading, to conserve resources
246246 - bolt : true
247247 free-threading : true
248248 # BOLT currently crashes during instrumentation on aarch64
249- - os : ubuntu-24 .04-arm
249+ - os : ubuntu-26 .04-arm
250250 bolt : true
251251 include :
252252 # Enable CPU-intensive tests on ARM (default build only)
253- - os : ubuntu-24 .04-arm
253+ - os : ubuntu-26 .04-arm
254254 bolt : false
255255 free-threading : false
256256 test-opts : ' -u cpu'
@@ -270,7 +270,7 @@ jobs:
270270 strategy :
271271 fail-fast : false
272272 matrix :
273- os : [ubuntu-24 .04]
273+ os : [ubuntu-26 .04]
274274 ssllib :
275275 # See Tools/ssl/make_ssl_data.py for notes on adding a new version
276276 # # OpenSSL
@@ -346,7 +346,7 @@ jobs:
346346 - arch : aarch64
347347 runs-on : macos-26
348348 - arch : x86_64
349- runs-on : ubuntu-24 .04
349+ runs-on : ubuntu-26 .04
350350
351351 runs-on : ${{ matrix.runs-on }}
352352 steps :
@@ -393,7 +393,7 @@ jobs:
393393
394394 test-hypothesis :
395395 name : " Hypothesis tests on Ubuntu"
396- runs-on : ubuntu-24 .04
396+ runs-on : ubuntu-26 .04
397397 timeout-minutes : 60
398398 needs : build-context
399399 if : needs.build-context.outputs.run-ubuntu == 'true'
@@ -504,7 +504,7 @@ jobs:
504504 strategy :
505505 fail-fast : false
506506 matrix :
507- os : [ubuntu-24 .04]
507+ os : [ubuntu-26 .04]
508508 env :
509509 OPENSSL_VER : 3.5.7
510510 PYTHONSTRICTEXTENSIONBUILD : 1
@@ -554,7 +554,6 @@ jobs:
554554 - Thread
555555 free-threading :
556556 - false
557- - true
558557 sanitizer :
559558 - TSan
560559 include :
@@ -566,9 +565,20 @@ jobs:
566565 sanitizer : ${{ matrix.sanitizer }}
567566 free-threading : ${{ matrix.free-threading }}
568567
568+ # XXX: Temporarily allow this job to fail to not block PRs.
569+ build-san-free-threading :
570+ # ${{ '' } is a hack to nest jobs under the same sidebar category.
571+ name : Sanitizers${{ '' }} # zizmor: ignore[obfuscation]
572+ needs : build-context
573+ if : needs.build-context.outputs.run-ubuntu == 'true'
574+ uses : ./.github/workflows/reusable-san.yml
575+ with :
576+ sanitizer : TSan
577+ free-threading : true
578+
569579 cross-build-linux :
570580 name : Cross build Linux
571- runs-on : ubuntu-latest
581+ runs-on : ubuntu-26.04
572582 timeout-minutes : 60
573583 needs : build-context
574584 if : needs.build-context.outputs.run-ubuntu == 'true'
@@ -669,6 +679,7 @@ jobs:
669679 - test-hypothesis
670680 - build-asan
671681 - build-san
682+ - build-san-free-threading
672683 - cross-build-linux
673684 - cifuzz
674685 if : always()
@@ -680,6 +691,7 @@ jobs:
680691 allowed-failures : >-
681692 build-android,
682693 build-emscripten,
694+ build-san-free-threading,
683695 build-windows-msi,
684696 build-ubuntu-ssltests,
685697 test-hypothesis,
0 commit comments