From ad7c3a0e486a18ebcdefc7c971d160025ff6ec73 Mon Sep 17 00:00:00 2001 From: Luka Peschke Date: Tue, 13 Jan 2026 11:46:14 +0100 Subject: [PATCH 1/4] ci: provide windows arm64 wheels as well Signed-off-by: Luka Peschke --- .github/workflows/CI.yml | 18 +++++++++++------- .github/workflows/release.yml | 5 +++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 6a6d4a2..08ede0c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -56,13 +56,17 @@ jobs: make install make doc - # GitHub provides only x86_64 runners, so we cannot test on arm architecture test: runs-on: ${{ matrix.os }} strategy: matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"] - os: ["ubuntu-latest", "macos-14", "windows-latest"] + os: + - "ubuntu-latest" + - "ubuntu-24.04-arm" + - "macos-14" + - "windows-latest" + - "windows-11-arm" steps: - uses: actions/checkout@v6 - name: Set up Python @@ -88,17 +92,17 @@ jobs: python-version: ["3.10", "3.14t"] os: ["ubuntu-latest", "macos-14", "windows-latest"] architecture: [x86-64, aarch64] - exclude: - - os: windows-latest - architecture: aarch64 steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable - name: Set Rust target id: target - if: matrix.os != 'windows-latest' run: | - TARGET=${{ matrix.os == 'macos-14' && (matrix.architecture == 'aarch64' && 'aarch64-apple-darwin' || 'x86_64-apple-darwin') || (matrix.architecture == 'aarch64' && 'aarch64-unknown-linux-gnu' || null) }} + TARGET=${{ + (matrix.os == 'macos-14' && (matrix.architecture == 'aarch64' && 'aarch64-apple-darwin' || 'x86_64-apple-darwin')) + || (matrix.os == 'ubuntu-latest' && (matrix.architecture == 'aarch64' && 'aarch64-unknown-linux-gnu' || 'x86_64-unknown-linux-gnu')) + || (matrix.os == 'windows-latest' && (matrix.architecture == 'aarch64' && 'aarch64-pc-windows-msvc' || 'x86_64-pc-windows-msvc')) + }} echo "target=$TARGET" >> $GITHUB_OUTPUT - name: Set up Python uses: actions/setup-python@v6 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 800de25..1338447 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,8 +60,8 @@ jobs: runs-on: windows-latest strategy: matrix: - # amd64 only for windows, as no arm64 runners are available python-version: ["3.10", "3.14t"] + architecture: [x86-64, aarch64] steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable @@ -73,10 +73,11 @@ jobs: with: command: build args: "--release -o dist -i python${{ matrix.python-version }}" + target: ${{ matrix.architecture == 'aarch64' && 'aarch64-pc-windows-msvc' || 'x86_64-pc-windows-msvc' }} - name: Upload wheels uses: actions/upload-artifact@v6 with: - name: "wheels-windows-python-${{ matrix.python-version }}" + name: "wheels-windows-python-${{ matrix.python-version }}-${{ matrix.architecture }}" path: dist sdist: From a08f2ad1717ec7d2fc1d27c37fa8872fbca2edbd Mon Sep 17 00:00:00 2001 From: Luka Peschke Date: Tue, 13 Jan 2026 11:52:04 +0100 Subject: [PATCH 2/4] comment out python for check-wheel-build Signed-off-by: Luka Peschke --- .github/workflows/CI.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 08ede0c..9080a66 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -104,10 +104,10 @@ jobs: || (matrix.os == 'windows-latest' && (matrix.architecture == 'aarch64' && 'aarch64-pc-windows-msvc' || 'x86_64-pc-windows-msvc')) }} echo "target=$TARGET" >> $GITHUB_OUTPUT - - name: Set up Python - uses: actions/setup-python@v6 - with: - python-version: ${{ matrix.python-version }} + # - name: Set up Python + # uses: actions/setup-python@v6 + # with: + # python-version: ${{ matrix.python-version }} - name: build (fast) uses: PyO3/maturin-action@v1 with: From 4479f823da977b3e2fff04031a29bd219ea9e088 Mon Sep 17 00:00:00 2001 From: Luka Peschke Date: Tue, 13 Jan 2026 11:54:59 +0100 Subject: [PATCH 3/4] exclude py310 win11arm from test scenarii Signed-off-by: Luka Peschke --- .github/workflows/CI.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9080a66..240840b 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -67,6 +67,10 @@ jobs: - "macos-14" - "windows-latest" - "windows-11-arm" + exclude: + # Python ARM builds for windows are only available from Python 3.11 + - os: windows-11-arm + python-version: 3.10 steps: - uses: actions/checkout@v6 - name: Set up Python From a8a0a70b663ef08d95640f5acb0595b26c3bb9de Mon Sep 17 00:00:00 2001 From: Luka Peschke Date: Tue, 13 Jan 2026 11:56:41 +0100 Subject: [PATCH 4/4] re-enable python setup Signed-off-by: Luka Peschke --- .github/workflows/CI.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 240840b..22718dd 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -108,10 +108,10 @@ jobs: || (matrix.os == 'windows-latest' && (matrix.architecture == 'aarch64' && 'aarch64-pc-windows-msvc' || 'x86_64-pc-windows-msvc')) }} echo "target=$TARGET" >> $GITHUB_OUTPUT - # - name: Set up Python - # uses: actions/setup-python@v6 - # with: - # python-version: ${{ matrix.python-version }} + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} - name: build (fast) uses: PyO3/maturin-action@v1 with: