@@ -225,6 +225,17 @@ jobs:
225
225
python-architecture : " x64" ,
226
226
rust-target : " x86_64-unknown-linux-gnu" ,
227
227
}
228
+ # Also test free-threaded Python just for latest Python version, on ubuntu
229
+ # (run for all OSes on build-full)
230
+ - rust : stable
231
+ python-version : " 3.13t"
232
+ platform :
233
+ {
234
+ os : " ubuntu-latest" ,
235
+ python-architecture : " x64" ,
236
+ rust-target : " x86_64-unknown-linux-gnu" ,
237
+ }
238
+
228
239
build-full :
229
240
if : ${{ contains(github.event.pull_request.labels.*.name, 'CI-build-full') || github.event_name != 'pull_request' }}
230
241
name : python${{ matrix.python-version }}-${{ matrix.platform.python-architecture }} ${{ matrix.platform.os }} rust-${{ matrix.rust }}
@@ -252,6 +263,7 @@ jobs:
252
263
" 3.11" ,
253
264
" 3.12" ,
254
265
" 3.13" ,
266
+ " 3.13t" ,
255
267
" pypy3.9" ,
256
268
" pypy3.10" ,
257
269
" pypy3.11" ,
@@ -460,35 +472,6 @@ jobs:
460
472
components : rust-src
461
473
- run : cargo rustdoc --lib --no-default-features --features full,jiff-02 -Zunstable-options --config "build.rustdocflags=[\"--cfg\", \"docsrs\"]"
462
474
463
- coverage :
464
- if : ${{ github.event_name != 'merge_group' }}
465
- needs : [fmt]
466
- name : coverage ${{ matrix.os }}
467
- strategy :
468
- matrix :
469
- os : ["windows-latest", "macos-latest", "ubuntu-latest"]
470
- runs-on : ${{ matrix.os }}
471
- steps :
472
- - uses : actions/checkout@v4
473
- - uses : actions/setup-python@v5
474
- with :
475
- python-version : " 3.13"
476
- - uses : Swatinem/rust-cache@v2
477
- with :
478
- save-if : ${{ github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'CI-save-pr-cache') }}
479
- - uses : dtolnay/rust-toolchain@stable
480
- with :
481
- components : llvm-tools-preview,rust-src
482
- - name : Install cargo-llvm-cov
483
- uses : taiki-e/install-action@cargo-llvm-cov
484
- - run : python -m pip install --upgrade pip && pip install nox
485
- - run : nox -s coverage
486
- - uses : codecov/codecov-action@v5
487
- with :
488
- files : coverage.json
489
- name : ${{ matrix.os }}
490
- token : ${{ secrets.CODECOV_TOKEN }}
491
-
492
475
emscripten :
493
476
name : emscripten
494
477
if : ${{ contains(github.event.pull_request.labels.*.name, 'CI-build-full') || github.event_name != 'pull_request' }}
@@ -575,43 +558,6 @@ jobs:
575
558
echo PYO3_CONFIG_FILE=$PYO3_CONFIG_FILE >> $GITHUB_ENV
576
559
- run : python3 -m nox -s test
577
560
578
- test-free-threaded :
579
- needs : [fmt]
580
- name : Free threaded tests - ${{ matrix.os }}
581
- runs-on : ${{ matrix.os }}
582
- strategy :
583
- matrix :
584
- os : ["ubuntu-latest", "macos-latest", "windows-latest"]
585
- steps :
586
- - uses : actions/checkout@v4
587
- - uses : Swatinem/rust-cache@v2
588
- with :
589
- save-if : ${{ github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'CI-save-pr-cache') }}
590
- - uses : dtolnay/rust-toolchain@stable
591
- with :
592
- components : rust-src
593
-
594
- with :
595
- python-version : " 3.13t"
596
- - name : Install cargo-llvm-cov
597
- uses : taiki-e/install-action@cargo-llvm-cov
598
- - run : python3 -m sysconfig
599
- - run : python3 -m pip install --upgrade pip && pip install nox
600
- - name : Prepare coverage environment
601
- run : |
602
- cargo llvm-cov clean --workspace --profraw-only
603
- nox -s set-coverage-env
604
- - run : nox -s ffi-check
605
- - run : nox
606
- - name : Generate coverage report
607
- run : nox -s generate-coverage-report
608
- - name : Upload coverage report
609
- uses : codecov/codecov-action@v5
610
- with :
611
- files : coverage.json
612
- name : ${{ matrix.os }}-test-free-threaded
613
- token : ${{ secrets.CODECOV_TOKEN }}
614
-
615
561
test-version-limits :
616
562
needs : [fmt]
617
563
if : ${{ contains(github.event.pull_request.labels.*.name, 'CI-build-full') || github.event_name != 'pull_request' }}
@@ -758,30 +704,32 @@ jobs:
758
704
759
705
test-introspection :
760
706
needs : [fmt]
707
+ if : ${{ contains(github.event.pull_request.labels.*.name, 'CI-test-introspection') || contains(github.event.pull_request.labels.*.name, 'CI-build-full') || github.event_name != 'pull_request' }}
761
708
strategy :
762
709
matrix :
763
- platform : [
764
- {
765
- os : " macos-latest" ,
766
- python-architecture : " arm64" ,
767
- rust-target : " aarch64-apple-darwin" ,
768
- },
769
- {
770
- os : " ubuntu-latest" ,
771
- python-architecture : " x64" ,
772
- rust-target : " x86_64-unknown-linux-gnu" ,
773
- },
774
- {
775
- os : " windows-latest" ,
776
- python-architecture : " x64" ,
777
- rust-target : " x86_64-pc-windows-msvc" ,
778
- },
779
- {
780
- os : " windows-latest" ,
781
- python-architecture : " x86" ,
782
- rust-target : " i686-pc-windows-msvc" ,
783
- },
784
- ]
710
+ platform :
711
+ [
712
+ {
713
+ os : " macos-latest" ,
714
+ python-architecture : " arm64" ,
715
+ rust-target : " aarch64-apple-darwin" ,
716
+ },
717
+ {
718
+ os : " ubuntu-latest" ,
719
+ python-architecture : " x64" ,
720
+ rust-target : " x86_64-unknown-linux-gnu" ,
721
+ },
722
+ {
723
+ os : " windows-latest" ,
724
+ python-architecture : " x64" ,
725
+ rust-target : " x86_64-pc-windows-msvc" ,
726
+ },
727
+ {
728
+ os : " windows-latest" ,
729
+ python-architecture : " x86" ,
730
+ rust-target : " i686-pc-windows-msvc" ,
731
+ },
732
+ ]
785
733
runs-on : ${{ matrix.platform.os }}
786
734
steps :
787
735
- uses : actions/checkout@v4
@@ -811,10 +759,8 @@ jobs:
811
759
- valgrind
812
760
- careful
813
761
- docsrs
814
- - coverage
815
762
- emscripten
816
763
- test-debug
817
- - test-free-threaded
818
764
- test-version-limits
819
765
- check-feature-powerset
820
766
- test-cross-compilation
0 commit comments