Skip to content

Commit d90a93b

Browse files
authored
ci: PGO-optimize linux aarch64, restore builds for windows aarch64 (#1837)
1 parent eb48cad commit d90a93b

File tree

1 file changed

+33
-24
lines changed

1 file changed

+33
-24
lines changed

.github/workflows/ci.yml

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -409,17 +409,18 @@ jobs:
409409
fail-fast: false
410410
matrix:
411411
os: [linux, macos, windows]
412-
target: [x86_64, aarch64]
412+
target: [undefined]
413413
manylinux: [auto]
414414
include:
415-
# manylinux for various platforms, plus pypy and graalpy on major architectures
415+
# manylinux for various platforms
416+
# x86_64 and aarch64 are PGO optimized below
416417
- os: linux
417418
manylinux: auto
418419
target: i686
419420
- os: linux
420421
manylinux: auto
421422
target: aarch64
422-
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.10 pypy3.11 graalpy3.11 graalpy3.12
423+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
423424
- os: linux
424425
manylinux: auto
425426
target: armv7
@@ -437,6 +438,16 @@ jobs:
437438
target: x86_64
438439
interpreter: pypy3.10 pypy3.11 graalpy3.11 graalpy3.12
439440

441+
# manylinux pypy and graalpy on major architectures
442+
- os: linux
443+
manylinux: auto
444+
target: x86_64
445+
interpreter: graalpy3.11 graalpy3.12
446+
- os: linux
447+
manylinux: auto
448+
target: aarch64
449+
interpreter: graalpy3.11 graalpy3.12
450+
440451
# musllinux
441452
- os: linux
442453
manylinux: musllinux_1_1
@@ -461,7 +472,7 @@ jobs:
461472
# windows;
462473
# x86_64 pypy builds are not PGO optimized
463474
# i686 not supported by pypy
464-
# aarch64 only 3.11 and up, also not PGO optimized
475+
# windows 11 arm supports 3.11 and up, not PGO optimized for now
465476
- os: windows
466477
target: x86_64
467478
interpreter: pypy3.10 pypy3.11
@@ -471,14 +482,14 @@ jobs:
471482
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
472483
- os: windows
473484
target: aarch64
474-
interpreter: 3.11 3.12 3.13 3.14
485+
runs-on: windows-11-arm
486+
interpreter: "3.11 3.12 3.13 3.13t 3.14 3.14t"
475487

476488
exclude:
477-
# See above; disabled for now.
478-
- os: windows
479-
target: aarch64
489+
# was just a dummy variable to set a default value for target
490+
- target: undefined
480491

481-
runs-on: ${{ (matrix.os == 'linux' && 'ubuntu') || matrix.os }}-latest
492+
runs-on: ${{ matrix.runs-on || format('{0}-latest', matrix.os) }}
482493
steps:
483494
- uses: actions/checkout@v5
484495

@@ -509,30 +520,28 @@ jobs:
509520
path: dist
510521

511522
build-pgo:
512-
name: build pgo-optimized on ${{ matrix.os }} / ${{ matrix.interpreter }}
523+
name: build pgo-optimized on ${{ matrix.platform.os }} / ${{ matrix.interpreter }}
513524
# only run on push to main and on release
514525
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'Full Build')
515526
strategy:
516527
fail-fast: false
517528
matrix:
518-
os: [linux, windows, macos]
529+
platform:
530+
[
531+
{ os: linux, runs-on: ubuntu-latest },
532+
{ os: linux_aarch64, runs-on: ubuntu-24.04-arm },
533+
{ os: windows, runs-on: windows-latest },
534+
{ os: macos, runs-on: macos-latest },
535+
]
519536
interpreter:
520537
["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
521-
include:
522-
# standard runners with override for macos arm
523-
- os: linux
524-
runs-on: ubuntu-latest
525-
- os: windows
526-
ls: dir
527-
runs-on: windows-latest
528-
- os: macos
529-
runs-on: macos-latest
530538
exclude:
531539
# macos arm only supported from 3.10 and up
532-
- os: macos
540+
- platform:
541+
os: macos
533542
interpreter: "3.9"
534543

535-
runs-on: ${{ matrix.runs-on }}
544+
runs-on: ${{ matrix.platform.runs-on }}
536545
steps:
537546
- uses: actions/checkout@v5
538547

@@ -555,11 +564,11 @@ jobs:
555564
interpreter: ${{ matrix.interpreter }}
556565
rust-toolchain: ${{ steps.rust-toolchain.outputs.name }}
557566

558-
- run: ${{ matrix.ls || 'ls -lh' }} dist/
567+
- run: ${{ (startsWith(matrix.platform.os, 'windows') && 'dir') || 'ls -lh' }} dist/
559568

560569
- uses: actions/upload-artifact@v4
561570
with:
562-
name: pypi_files_${{ matrix.os }}_${{ matrix.interpreter }}
571+
name: pypi_files_${{ matrix.platform.os }}_${{ matrix.interpreter }}
563572
path: dist
564573

565574
inspect-pypi-assets:

0 commit comments

Comments
 (0)