@@ -249,27 +249,38 @@ jobs:
249249 arch : ${{ matrix.arch }}
250250
251251 build_macos :
252- name : ' macOS'
253- needs : check_source
254- if : needs.check_source.outputs.run_tests == 'true'
255- uses : ./.github/workflows/reusable-macos.yml
256- with :
257- config_hash : ${{ needs.check_source.outputs.config_hash }}
258- # Cirrus and macos-14 are M1, macos-13 is default GHA Intel.
259- # Cirrus used for upstream, macos-14 for forks.
260- os-matrix : ' ["ghcr.io/cirruslabs/macos-runner:sonoma", "macos-14", "macos-13"]'
261-
262- build_macos_free_threading :
263- name : ' macOS (free-threading)'
252+ name : >-
253+ macOS
254+ ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
264255 needs : check_source
265256 if : needs.check_source.outputs.run_tests == 'true'
257+ strategy :
258+ fail-fast : false
259+ matrix :
260+ # Cirrus and macos-14 are M1, macos-13 is default GHA Intel.
261+ # macOS 13 only runs tests against the GIL-enabled CPython.
262+ # Cirrus used for upstream, macos-14 for forks.
263+ os :
264+ - ghcr.io/cirruslabs/macos-runner:sonoma
265+ - macos-14
266+ - macos-13
267+ is-fork : # only used for the exclusion trick
268+ - ${{ github.repository_owner != 'python' }}
269+ free-threading :
270+ - false
271+ - true
272+ exclude :
273+ - os : ghcr.io/cirruslabs/macos-runner:sonoma
274+ is-fork : true
275+ - os : macos-14
276+ is-fork : false
277+ - os : macos-13
278+ free-threading : true
266279 uses : ./.github/workflows/reusable-macos.yml
267280 with :
268281 config_hash : ${{ needs.check_source.outputs.config_hash }}
269- free-threading : true
270- # Cirrus and macos-14 are M1.
271- # Cirrus used for upstream, macos-14 for forks.
272- os-matrix : ' ["ghcr.io/cirruslabs/macos-runner:sonoma", "macos-14"]'
282+ free-threading : ${{ matrix.free-threading }}
283+ os : ${{ matrix.os }}
273284
274285 build_ubuntu :
275286 name : >-
@@ -596,7 +607,6 @@ jobs:
596607 - check-docs
597608 - check_generated_files
598609 - build_macos
599- - build_macos_free_threading
600610 - build_ubuntu
601611 - build_ubuntu_ssltests
602612 - build_wasi
@@ -632,7 +642,6 @@ jobs:
632642 && '
633643 check_generated_files,
634644 build_macos,
635- build_macos_free_threading,
636645 build_ubuntu,
637646 build_ubuntu_ssltests,
638647 build_wasi,
0 commit comments