6767 fail-fast : ${{ !contains(github.event.pull_request.labels.*.name, 'CI-no-fail-fast') }}
6868 matrix :
6969 python-version :
70- ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", pypy-3.10, pypy-3.11]
70+ [
71+ " 3.9" ,
72+ " 3.10" ,
73+ " 3.11" ,
74+ " 3.14" ,
75+ " 3.13" ,
76+ " 3.13t" ,
77+ " 3.14" ,
78+ " 3.14t" ,
79+ " pypy-3.11" ,
80+ " graalpy25.0" ,
81+ ]
7182 platform :
7283 [
7384 {
@@ -88,22 +99,37 @@ jobs:
8899 ]
89100 include :
90101 # Just test one x86 Windows Python for simplicity
91- - python-version : 3.12
102+ - python-version : " 3.x "
92103 platform :
93104 {
94105 os : " windows-latest" ,
95106 python-architecture : " x86" ,
96107 rust-target : " i686-pc-windows-msvc" ,
97108 }
109+ # Just test one arm64 Windows Python for simplicity
110+ - python-version : " 3.x"
111+ platform :
112+ {
113+ os : " windows-11-arm" ,
114+ python-architecture : " arm64" ,
115+ rust-target : " aarch64-pc-windows-msvc" ,
116+ }
98117 # Just test one x64 macOS Python for simplicity
99- - python-version : 3.12
118+ - python-version : " 3.x "
100119 platform :
101120 {
102- os : " macos-13 " ,
121+ os : " macos-15-intel " ,
103122 python-architecture : " x64" ,
104123 rust-target : " x86_64-apple-darwin" ,
105124 }
106- # Just test one x64 macOS Python for simplicity
125+ # Just test one arm64 Ubuntu Python for simplicity
126+ - python-version : " 3.x"
127+ platform :
128+ {
129+ os : " ubuntu-24.04-arm" ,
130+ python-architecture : " arm64" ,
131+ rust-target : " aarch64-unknown-linux-gnu" ,
132+ }
107133 exclude :
108134 # macOS arm doesn't have Python builds before 3.10
109135 - python-version : 3.9
@@ -113,6 +139,14 @@ jobs:
113139 python-architecture : " arm64" ,
114140 rust-target : " aarch64-apple-darwin" ,
115141 }
142+ # no graalpy available on Windows
143+ - python-version : graalpy25.0
144+ platform :
145+ {
146+ os : " windows-latest" ,
147+ python-architecture : " x64" ,
148+ rust-target : " x86_64-pc-windows-msvc" ,
149+ }
116150
117151 env :
118152 SETUPTOOLS_RUST_CARGO_PROFILE : dev
@@ -144,10 +178,9 @@ jobs:
144178 run : nox -s test-examples
145179
146180 - name : Test macOS universal2
147- if : ${{ startsWith(matrix.platform.os, 'macos') && !startsWith(matrix.python-version, 'pypy') }}
181+ if : ${{ startsWith(matrix.platform.os, 'macos') && !startsWith(matrix.python-version, 'pypy') && !startsWith(matrix.python-version, 'graalpy') }}
148182 shell : bash
149183 env :
150- MACOSX_DEPLOYMENT_TARGET : " 10.9"
151184 ARCHFLAGS : -arch x86_64 -arch arm64
152185 run : |
153186 rustup target add aarch64-apple-darwin
@@ -173,13 +206,21 @@ jobs:
173206 # If one platform fails, allow the rest to keep testing if `CI-no-fail-fast` label is present
174207 fail-fast : ${{ !contains(github.event.pull_request.labels.*.name, 'CI-no-fail-fast') }}
175208 matrix :
176- os : [ubuntu-latest, macos-latest, windows-latest]
209+ os :
210+ [
211+ ubuntu-latest,
212+ macos-latest,
213+ windows-latest,
214+ windows-11-arm,
215+ macos-15-intel,
216+ ubuntu-24.04-arm,
217+ ]
177218 steps :
178219 - uses : actions/checkout@v5
179220 - name : Setup python
180221 uses : actions/setup-python@v6
181222 with :
182- python-version : 3.9
223+ python-version : " 3.x "
183224
184225 - uses : dtolnay/rust-toolchain@stable
185226
@@ -189,8 +230,6 @@ jobs:
189230 - name : Build an abi3 wheel
190231 shell : bash
191232 env :
192- # https://github.com/actions/setup-python/issues/26
193- MACOSX_DEPLOYMENT_TARGET : 10.9
194233 DIST_EXTRA_CONFIG : /tmp/build-opts.cfg
195234 run : |
196235 set -e
@@ -201,12 +240,12 @@ jobs:
201240 python -m build --no-isolation
202241 ls -la dist/
203242
204- # Now we switch to a differnet Python version and ensure we can install
243+ # Now we switch to a different Python version and ensure we can install
205244 # the wheel we just built.
206245 - name : Setup python
207246 uses : actions/setup-python@v6
208247 with :
209- python-version : " 3.10 "
248+ python-version : " 3.11 "
210249
211250 - name : Install abi3 wheel and run tests
212251 shell : bash
0 commit comments