9797 - name : Get a list of the changed documentation-related files
9898 if : github.event_name == 'pull_request'
9999 id : changed-docs-files
100- uses : Ana06/get-changed-files@v2.2 .0
100+ uses : Ana06/get-changed-files@v2.3 .0
101101 with :
102102 filter : |
103103 Doc/**
@@ -137,6 +137,7 @@ jobs:
137137 uses : actions/cache@v4
138138 with :
139139 path : config.cache
140+ # Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python
140141 key : ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}-${{ env.pythonLocation }}
141142 - name : Install Dependencies
142143 run : sudo ./.github/workflows/posix-deps-apt.sh
@@ -206,6 +207,8 @@ jobs:
206207 uses : ./.github/workflows/reusable-macos.yml
207208 with :
208209 config_hash : ${{ needs.check_source.outputs.config_hash }}
210+ # macos-14 is M1, macos-13 is Intel
211+ os-matrix : ' ["macos-14", "macos-13"]'
209212
210213 build_macos_free_threading :
211214 name : ' macOS (free-threading)'
@@ -215,6 +218,8 @@ jobs:
215218 with :
216219 config_hash : ${{ needs.check_source.outputs.config_hash }}
217220 free-threading : true
221+ # macos-14 is M1
222+ os-matrix : ' ["macos-14"]'
218223
219224 build_ubuntu :
220225 name : ' Ubuntu'
@@ -301,6 +306,14 @@ jobs:
301306 - name : SSL tests
302307 run : ./python Lib/test/ssltests.py
303308
309+ build_wasi :
310+ name : ' WASI'
311+ needs : check_source
312+ if : needs.check_source.outputs.run_tests == 'true'
313+ uses : ./.github/workflows/reusable-wasi.yml
314+ with :
315+ config_hash : ${{ needs.check_source.outputs.config_hash }}
316+
304317 test_hypothesis :
305318 name : " Hypothesis tests on Ubuntu"
306319 runs-on : ubuntu-20.04
@@ -472,6 +485,26 @@ jobs:
472485 - name : Tests
473486 run : xvfb-run make test
474487
488+ build_tsan :
489+ name : ' Thread sanitizer'
490+ needs : check_source
491+ if : needs.check_source.outputs.run_tests == 'true'
492+ uses : ./.github/workflows/reusable-tsan.yml
493+ with :
494+ config_hash : ${{ needs.check_source.outputs.config_hash }}
495+ options : ./configure --config-cache --with-thread-sanitizer --with-pydebug
496+ suppressions_path : Tools/tsan/supressions.txt
497+
498+ build_tsan_free_threading :
499+ name : ' Thread sanitizer (free-threading)'
500+ needs : check_source
501+ if : needs.check_source.outputs.run_tests == 'true'
502+ uses : ./.github/workflows/reusable-tsan.yml
503+ with :
504+ config_hash : ${{ needs.check_source.outputs.config_hash }}
505+ options : ./configure --config-cache --disable-gil --with-thread-sanitizer --with-pydebug
506+ suppressions_path : Tools/tsan/suppressions_free_threading.txt
507+
475508 # CIFuzz job based on https://google.github.io/oss-fuzz/getting-started/continuous-integration/
476509 cifuzz :
477510 name : CIFuzz
@@ -525,10 +558,13 @@ jobs:
525558 - build_ubuntu
526559 - build_ubuntu_free_threading
527560 - build_ubuntu_ssltests
561+ - build_wasi
528562 - build_windows
529563 - build_windows_free_threading
530564 - test_hypothesis
531565 - build_asan
566+ - build_tsan
567+ - build_tsan_free_threading
532568 - cifuzz
533569
534570 runs-on : ubuntu-latest
@@ -558,9 +594,12 @@ jobs:
558594 build_ubuntu,
559595 build_ubuntu_free_threading,
560596 build_ubuntu_ssltests,
597+ build_wasi,
561598 build_windows,
562599 build_windows_free_threading,
563600 build_asan,
601+ build_tsan,
602+ build_tsan_free_threading,
564603 '
565604 || ''
566605 }}
0 commit comments