3333 matrix :
3434 rust-version : [stable]
3535 runs-on : [ubuntu, macos]
36- python-version : ["3.13 "]
36+ python-version : [""]
3737 include :
3838 - rust-version : ${{ needs.resolve.outputs.MSRV }}
3939 runs-on : ubuntu
5555 - name : set up python
5656 uses : actions/setup-python@v6
5757 with :
58- python-version : ${{ matrix.python-version }}
58+ python-version : ${{ matrix.python-version || '3.13' }}
5959
6060 - uses : dtolnay/rust-toolchain@master
6161 with :
@@ -256,34 +256,34 @@ jobs:
256256 strategy :
257257 fail-fast : false
258258 matrix :
259- os : [linux] # windows and macos builds added manually
260- target : [x86_64, aarch64 ]
259+ os : [linux, windows ] # windows and macos builds added manually
260+ target : [i686 ]
261261 manylinux : [auto]
262262 include :
263263 # manylinux for various platforms
264- - os : linux
265- manylinux : auto
266- target : x86_64
267- interpreter : graalpy3.11 graalpy3.12
264+ # x86_64 and aarch64 are PGO optimized below
268265 - os : linux
269266 manylinux : auto
270267 target : i686
271- - os : linux
272- manylinux : auto
273- target : aarch64
274- interpreter : 3.9 3.10 3.11 3.12 3.13 3.14 graalpy3.11 graalpy3.12
275268 - os : linux
276269 manylinux : auto
277270 target : armv7
278- interpreter : 3.9 3.10 3.11 3.12 3.13 3.14
279271 - os : linux
280272 manylinux : auto
281273 target : ppc64le
282- interpreter : 3.9 3.10 3.11 3.12 3.13 3.14
283274 - os : linux
284275 manylinux : auto
285276 target : s390x
286- interpreter : 3.9 3.10 3.11 3.12 3.13 3.14
277+
278+ # manylinux graalpy on major architectures
279+ - os : linux
280+ manylinux : auto
281+ target : x86_64
282+ interpreter : graalpy3.11 graalpy3.12
283+ - os : linux
284+ manylinux : auto
285+ target : aarch64
286+ interpreter : graalpy3.11 graalpy3.12
287287
288288 # musllinux
289289 - os : linux
@@ -292,49 +292,42 @@ jobs:
292292 - os : linux
293293 manylinux : musllinux_1_1
294294 target : aarch64
295+ runs-on : ubuntu-24.04-arm
295296
296297 # macos;
297298 # all versions x86_64
298- # older pythons which can't be run on the arm hardware for PGO
299+ # 3.9 can't be run on the arm hardware for PGO
299300 - os : macos
300301 target : x86_64
301302 interpreter : 3.9 3.10 3.11 3.12 3.13 3.14 graalpy3.11 graalpy3.12
302303 - os : macos
303304 target : aarch64
304305 interpreter : 3.9 graalpy3.11 graalpy3.12
305306
306- # windows;
307- # aarch64 only 3.11 and up, also not PGO optimized
307+ # windows 11 arm supports 3.11 and up
308308 - os : windows
309- target : i686
310- python-architecture : x86
311- interpreter : 3.9 3.10 3.11 3.12 3.13 3.14
312- # FIXME had link failures, needs investigation
313- # - os: windows
314- # target: aarch64
315- # interpreter: 3.11 3.12
316- exclude :
317- # PGO optimized below
318- - os : linux
319- manylinux : auto
320- target : x86_64
309+ target : aarch64
310+ runs-on : windows-11-arm
311+ interpreter : " 3.11 3.12 3.13 3.13t 3.14 3.14t"
321312
322- runs-on : ${{ ( matrix.os == 'linux' && 'ubuntu') || matrix.os }}-latest
313+ runs-on : ${{ matrix.runs-on || format('{0}-latest', ( matrix.os == 'linux' && 'ubuntu') || matrix.os) }}
323314 steps :
324315 - uses : actions/checkout@v5
325316
326317 - name : set up python
327318 uses : actions/setup-python@v6
328319 with :
329320 python-version : " 3.13"
330- architecture : ${{ matrix.python-architecture || 'x64' }}
321+
322+ - name : install rust stable
323+ uses : dtolnay/rust-toolchain@stable
331324
332325 - name : build wheels
333326 uses : PyO3/maturin-action@v1
334327 with :
335328 target : ${{ matrix.target }}
336329 manylinux : ${{ matrix.manylinux }}
337- args : --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14' }}
330+ args : --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14 3.14t ' }}
338331 rust-toolchain : stable
339332 working-directory : crates/jiter-python
340333
@@ -350,36 +343,28 @@ jobs:
350343 path : crates/jiter-python/dist
351344
352345 build-pgo :
353- name : build pgo-optimized on ${{ matrix.os }} / ${{ matrix.interpreter }}
346+ name : build pgo-optimized on ${{ matrix.platform. os }} / ${{ matrix.interpreter }}
354347 # only run on push to main and on release
355348 if : startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'Full Build')
356349 strategy :
357350 fail-fast : false
358351 matrix :
359- os : [linux, windows, macos]
352+ platform :
353+ [
354+ { os: linux, runs-on: ubuntu-latest },
355+ { os: linux_aarch64, runs-on: ubuntu-24.04-arm },
356+ { os: windows, runs-on: windows-latest },
357+ { os: macos, runs-on: macos-latest },
358+ ]
360359 interpreter :
361360 ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
362- include :
363- # standard runners with override for macos arm
364- - os : linux
365- runs-on : ubuntu-latest
366- - os : windows
367- ls : dir
368- runs-on : windows-latest
369- - os : macos
370- runs-on : macos-latest
371361 exclude :
372362 # macos arm only supported from 3.10 and up
373- - os : macos
363+ - platform :
364+ os : macos
374365 interpreter : " 3.9"
375- # windows 3.14 cffi install blocks build on 3.14 beta 1
376- # https://github.com/python/cpython/issues/133779
377- - os : windows
378- interpreter : " 3.14"
379- - os : windows
380- interpreter : " 3.14t"
381366
382- runs-on : ${{ matrix.runs-on }}
367+ runs-on : ${{ matrix.platform. runs-on }}
383368 steps :
384369 - uses : actions/checkout@v5
385370
@@ -402,11 +387,11 @@ jobs:
402387 interpreter : ${{ matrix.interpreter }}
403388 rust-toolchain : ${{ steps.rust-toolchain.outputs.name }}
404389
405- - run : ${{ matrix.ls || 'ls -lh' }} crates/jiter-python/dist/
390+ - run : ${{ (startsWith( matrix.platform.os, 'windows') && 'dir') || 'ls -lh' }} crates/jiter-python/dist/
406391
407392 - uses : actions/upload-artifact@v4
408393 with :
409- name : pypi_files_${{ matrix.os }}_${{ matrix.interpreter }}
394+ name : pypi_files_${{ matrix.platform. os }}_${{ matrix.interpreter }}
410395 path : crates/jiter-python/dist
411396
412397 build-wasm-emscripten :
0 commit comments