Skip to content

Commit 93babb4

Browse files
CI: Build Linux AArch64 wheels natively, and add Arm runners for testing (#788)
- Build Linux arm64 wheels natively - Expand regular CI with Linux Arm runners - Add Python 3.13 to the testing matrix - Reduce testing matrix by not matrix'ing densely over Python versions
1 parent d4f3854 commit 93babb4

2 files changed

Lines changed: 18 additions & 17 deletions

File tree

.github/workflows/tests.yml

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,38 +27,43 @@ env:
2727

2828
jobs:
2929
test_pywavelets_linux:
30-
name: linux-cp${{ matrix.python-version }}-${{ matrix.OPTIONS_NAME }}
31-
runs-on: ubuntu-latest
30+
name: ${{ matrix.runs-on }}-cp${{ matrix.python-version }}-${{ matrix.OPTIONS_NAME }}
31+
runs-on: ${{ matrix.runs-on }}
3232
strategy:
3333
# Ensure that a wheel builder finishes even if another fails
3434
fail-fast: false
3535
matrix:
36-
python-version: ["3.10", "3.11", "3.12"]
36+
runs-on: [ubuntu-latest] # Arm runner tested separately, see below
37+
python-version: ["3.10", "3.13"]
3738
MINIMUM_REQUIREMENTS: [0]
3839
USE_SCIPY: [0]
3940
USE_SDIST: [0]
4041
REFGUIDE_CHECK: [1]
4142
PIP_FLAGS: [""]
4243
OPTIONS_NAME: ["default"]
4344
include:
44-
- platform_id: manylinux_x86_64
45+
# Linux arm64
46+
- runs-on: ubuntu-22.04-arm
47+
python-version: "3.13"
48+
# Linux amd64
49+
- runs-on: ubuntu-latest
4550
python-version: "3.10"
4651
MINIMUM_REQUIREMENTS: 1
4752
OPTIONS_NAME: "minimum-req"
48-
- platform_id: manylinux_x86_64
53+
- runs-on: ubuntu-latest
4954
python-version: "3.10"
5055
USE_SCIPY: 1
5156
OPTIONS_NAME: "with-scipy"
52-
- platform_id: manylinux_x86_64
57+
- runs-on: ubuntu-latest
5358
python-version: "3.10"
5459
USE_SDIST: 1
5560
OPTIONS_NAME: "install-from-sdist"
56-
- platform_id: manylinux_x86_64
57-
python-version: "3.12"
61+
- runs-on: ubuntu-latest
62+
python-version: "3.13"
5863
PIP_FLAGS: "--pre"
5964
OPTIONS_NAME: "pre-releases"
60-
- platform_id: manylinux_x86_64
61-
python-version: "3.12"
65+
- runs-on: ubuntu-latest
66+
python-version: "3.13"
6267
OPTIONS_NAME: "editable-install"
6368
steps:
6469
- name: Checkout PyWavelets
@@ -183,7 +188,7 @@ jobs:
183188
# Ensure that a wheel builder finishes even if another fails
184189
fail-fast: false
185190
matrix:
186-
python-version: ["3.10", "3.12"]
191+
python-version: ["3.10", "3.13"]
187192
MINIMUM_REQUIREMENTS: [0]
188193
USE_SCIPY: [0]
189194
USE_SDIST: [0]
@@ -194,7 +199,7 @@ jobs:
194199
- python-version: "3.10"
195200
MINIMUM_REQUIREMENTS: 1
196201
OPTIONS_NAME: "osx-minimum-req"
197-
- python-version: "3.12"
202+
- python-version: "3.13"
198203
PIP_FLAGS: "--pre"
199204
OPTIONS_NAME: "pre-releases"
200205

.github/workflows/wheel_tests_and_release.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
strategy:
7979
fail-fast: false
8080
matrix:
81-
os: [ubuntu-latest]
81+
os: [ubuntu-22.04-arm]
8282
cibw_python: ["cp310", "cp311", "cp312", "cp313"]
8383
cibw_arch: ["aarch64"]
8484
steps:
@@ -89,10 +89,6 @@ jobs:
8989
name: Install Python
9090
with:
9191
python-version: "3.10"
92-
- name: Set up QEMU
93-
uses: docker/setup-qemu-action@v3
94-
with:
95-
platforms: arm64
9692

9793
- name: Build the wheel
9894
uses: pypa/cibuildwheel@ee63bf16da6cddfb925f542f2c7b59ad50e93969 # v2.22.0

0 commit comments

Comments
 (0)