@@ -100,7 +100,7 @@ jobs:
100100 name : ' Check if Autoconf files are up to date'
101101 # Don't use ubuntu-latest but a specific version to make the job
102102 # reproducible: to get the same tools versions (autoconf, aclocal, ...)
103- runs-on : ubuntu-24 .04
103+ runs-on : ubuntu-26 .04
104104 container :
105105 image : ghcr.io/python/autoconf:2025.01.02.12581854023
106106 timeout-minutes : 60
@@ -143,7 +143,7 @@ jobs:
143143 name : ' Check if generated files are up to date'
144144 # Don't use ubuntu-latest but a specific version to make the job
145145 # reproducible: to get the same tools versions (autoconf, aclocal, ...)
146- runs-on : ubuntu-24 .04
146+ runs-on : ubuntu-26 .04
147147 timeout-minutes : 60
148148 needs : build-context
149149 if : needs.build-context.outputs.run-tests == 'true'
@@ -187,9 +187,14 @@ jobs:
187187 - name : Check for unsupported C global variables
188188 if : github.event_name == 'pull_request' # $GITHUB_EVENT_NAME
189189 run : make check-c-globals
190- - name : Check for undocumented C APIs
191- run : make check-c-api-docs
192190
191+ check-c-api-docs :
192+ name : C API Docs
193+ needs : build-context
194+ if : >-
195+ needs.build-context.outputs.run-tests == 'true'
196+ || needs.build-context.outputs.run-docs == 'true'
197+ uses : ./.github/workflows/reusable-check-c-api-docs.yml
193198
194199 build-windows :
195200 name : >-
@@ -240,16 +245,16 @@ jobs:
240245 strategy :
241246 fail-fast : false
242247 matrix :
243- # macos-26 is Apple Silicon, macos-15 -intel is Intel.
244- # macos-15 -intel only runs tests against the GIL-enabled CPython.
248+ # macos-26 is Apple Silicon, macos-26 -intel is Intel.
249+ # macos-26 -intel only runs tests against the GIL-enabled CPython.
245250 os :
246251 - macos-26
247- - macos-15 -intel
252+ - macos-26 -intel
248253 free-threading :
249254 - false
250255 - true
251256 exclude :
252- - os : macos-15 -intel
257+ - os : macos-26 -intel
253258 free-threading : true
254259 uses : ./.github/workflows/reusable-macos.yml
255260 with :
@@ -272,6 +277,8 @@ jobs:
272277 free-threading :
273278 - false
274279 - true
280+ # For BOLT jobs, https://apt.llvm.org/llvm.sh doesn't support LLVM 19
281+ # on Ubuntu 26.04, so stick to Ubuntu 24.04 until LLVM is upgraded.
275282 os :
276283 - ubuntu-24.04
277284 - ubuntu-24.04-arm
@@ -297,7 +304,7 @@ jobs:
297304 strategy :
298305 fail-fast : false
299306 matrix :
300- os : [ubuntu-24 .04]
307+ os : [ubuntu-26 .04]
301308 ssllib :
302309 # See Tools/ssl/make_ssl_data.py for notes on adding a new version
303310 # # OpenSSL
@@ -370,38 +377,29 @@ jobs:
370377 - arch : aarch64
371378 runs-on : macos-26
372379 - arch : x86_64
373- runs-on : ubuntu-24 .04
380+ runs-on : ubuntu-26 .04
374381
375382 runs-on : ${{ matrix.runs-on }}
376383 steps :
377384 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
378385 with :
379386 persist-credentials : false
380387 - name : Build and test
381- run : ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
388+ run : JAVA_HOME="${JAVA_HOME_21_X64:-$JAVA_HOME_21_arm64}" ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
382389
383390 build-ios :
384391 name : iOS
385392 needs : build-context
386393 if : needs.build-context.outputs.run-ios == 'true'
387394 timeout-minutes : 60
388- runs-on : macos-14
395+ runs-on : macos-26
389396 steps :
390397 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
391398 with :
392399 persist-credentials : false
393400
394- # GitHub recommends explicitly selecting the desired Xcode version:
395- # https://github.com/actions/runner-images/issues/12541#issuecomment-3083850140
396- # This became a necessity as a result of
397- # https://github.com/actions/runner-images/issues/12541 and
398- # https://github.com/actions/runner-images/issues/12751.
399- - name : Select Xcode version
400- run : |
401- sudo xcode-select --switch /Applications/Xcode_15.4.app
402-
403401 - name : Build and test
404- run : python3 Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
402+ run : python3 Apple ci iOS --fast-ci
405403
406404 build-emscripten :
407405 name : ' Emscripten'
@@ -417,7 +415,7 @@ jobs:
417415
418416 test-hypothesis :
419417 name : " Hypothesis tests on Ubuntu"
420- runs-on : ubuntu-24 .04
418+ runs-on : ubuntu-26 .04
421419 timeout-minutes : 60
422420 needs : build-context
423421 if : needs.build-context.outputs.run-ubuntu == 'true'
@@ -528,7 +526,7 @@ jobs:
528526 strategy :
529527 fail-fast : false
530528 matrix :
531- os : [ubuntu-24 .04]
529+ os : [ubuntu-26 .04]
532530 env :
533531 OPENSSL_VER : 3.5.7
534532 PYTHONSTRICTEXTENSIONBUILD : 1
@@ -543,10 +541,6 @@ jobs:
543541 run : echo "::add-matcher::.github/problem-matchers/gcc.json"
544542 - name : Install dependencies
545543 run : sudo ./.github/workflows/posix-deps-apt.sh
546- - name : Set up GCC-10 for ASAN
547- uses : egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
548- with :
549- version : 10
550544 - name : Configure OpenSSL env vars
551545 run : |
552546 echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
@@ -596,7 +590,7 @@ jobs:
596590
597591 cross-build-linux :
598592 name : Cross build Linux
599- runs-on : ubuntu-latest
593+ runs-on : ubuntu-26.04
600594 timeout-minutes : 60
601595 needs : build-context
602596 if : needs.build-context.outputs.run-ubuntu == 'true'
@@ -685,6 +679,7 @@ jobs:
685679 - check-docs
686680 - check-autoconf-regen
687681 - check-generated-files
682+ - check-c-api-docs
688683 - build-windows
689684 - build-windows-msi
690685 - build-macos
@@ -721,6 +716,12 @@ jobs:
721716 '
722717 || ''
723718 }}
719+ ${{
720+ !fromJSON(needs.build-context.outputs.run-tests)
721+ && !fromJSON(needs.build-context.outputs.run-docs)
722+ && 'check-c-api-docs,'
723+ || ''
724+ }}
724725 ${{ !fromJSON(needs.build-context.outputs.run-windows-tests) && 'build-windows,' || '' }}
725726 ${{
726727 !fromJSON(needs.build-context.outputs.run-ci-fuzz)
0 commit comments