@@ -165,13 +165,21 @@ jobs:
165165 free-threading :
166166 - false
167167 - true
168+ interpreter :
169+ - switch-case
168170 exclude :
169171 # Skip Win32 on free-threaded builds
170172 - { arch: Win32, free-threading: true }
173+ include :
174+ # msvc::musttail is currently only supported on x64,
175+ # and only supported on 3.15+.
176+ - { arch: x64, free-threading: false, interpreter: tail-call }
177+ - { arch: x64, free-threading: true, interpreter: tail-call }
171178 uses : ./.github/workflows/reusable-windows.yml
172179 with :
173180 arch : ${{ matrix.arch }}
174181 free-threading : ${{ matrix.free-threading }}
182+ interpreter : ${{ matrix.interpreter }}
175183
176184 build-windows-msi :
177185 # ${{ '' } is a hack to nest jobs under the same sidebar category.
@@ -198,16 +206,16 @@ jobs:
198206 strategy :
199207 fail-fast : false
200208 matrix :
201- # macos-14 is M1 , macos-15 -intel is Intel.
202- # macos-15 -intel only runs tests against the GIL-enabled CPython.
209+ # macos-26 is Apple Silicon , macos-26 -intel is Intel.
210+ # macos-26 -intel only runs tests against the GIL-enabled CPython.
203211 os :
204- - macos-14
205- - macos-15 -intel
212+ - macos-26
213+ - macos-26 -intel
206214 free-threading :
207215 - false
208216 - true
209217 exclude :
210- - os : macos-15 -intel
218+ - os : macos-26 -intel
211219 free-threading : true
212220 uses : ./.github/workflows/reusable-macos.yml
213221 with :
@@ -336,7 +344,7 @@ jobs:
336344 matrix :
337345 include :
338346 - arch : aarch64
339- runs-on : macos-14
347+ runs-on : macos-26
340348 - arch : x86_64
341349 runs-on : ubuntu-24.04
342350
@@ -369,7 +377,13 @@ jobs:
369377 sudo xcode-select --switch /Applications/Xcode_15.4.app
370378
371379 - name : Build and test
372- run : python3 Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
380+ run : python3 Platforms/Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
381+
382+ build-emscripten :
383+ name : ' Emscripten'
384+ needs : build-context
385+ if : needs.build-context.outputs.run-emscripten == 'true'
386+ uses : ./.github/workflows/reusable-emscripten.yml
373387
374388 build-wasi :
375389 name : ' WASI'
@@ -475,7 +489,7 @@ jobs:
475489 -x test_subprocess \
476490 -x test_signal \
477491 -x test_sysconfig
478- - uses : actions/upload-artifact@v6
492+ - uses : actions/upload-artifact@v7
479493 if : always()
480494 with :
481495 name : hypothesis-example-db
@@ -650,6 +664,7 @@ jobs:
650664 - build-ubuntu
651665 - build-ubuntu-ssltests
652666 - build-ios
667+ - build-emscripten
653668 - build-wasi
654669 - test-hypothesis
655670 - build-asan
@@ -664,6 +679,7 @@ jobs:
664679 with :
665680 allowed-failures : >-
666681 build-android,
682+ build-emscripten,
667683 build-windows-msi,
668684 build-ubuntu-ssltests,
669685 test-hypothesis,
@@ -706,5 +722,6 @@ jobs:
706722 }}
707723 ${{ !fromJSON(needs.build-context.outputs.run-android) && 'build-android,' || '' }}
708724 ${{ !fromJSON(needs.build-context.outputs.run-ios) && 'build-ios,' || '' }}
725+ ${{ !fromJSON(needs.build-context.outputs.run-emscripten) && 'build-emscripten,' || '' }}
709726 ${{ !fromJSON(needs.build-context.outputs.run-wasi) && 'build-wasi,' || '' }}
710727 jobs : ${{ toJSON(needs) }}
0 commit comments