Skip to content

Commit

Permalink
CI: Build Linux AArch64 wheels natively, and add Arm runners for test…
Browse files Browse the repository at this point in the history
…ing (#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
  • Loading branch information
agriyakhetarpal authored Jan 29, 2025
1 parent d4f3854 commit 93babb4
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 17 deletions.
29 changes: 17 additions & 12 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,38 +27,43 @@ env:

jobs:
test_pywavelets_linux:
name: linux-cp${{ matrix.python-version }}-${{ matrix.OPTIONS_NAME }}
runs-on: ubuntu-latest
name: ${{ matrix.runs-on }}-cp${{ matrix.python-version }}-${{ matrix.OPTIONS_NAME }}
runs-on: ${{ matrix.runs-on }}
strategy:
# Ensure that a wheel builder finishes even if another fails
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
runs-on: [ubuntu-latest] # Arm runner tested separately, see below
python-version: ["3.10", "3.13"]
MINIMUM_REQUIREMENTS: [0]
USE_SCIPY: [0]
USE_SDIST: [0]
REFGUIDE_CHECK: [1]
PIP_FLAGS: [""]
OPTIONS_NAME: ["default"]
include:
- platform_id: manylinux_x86_64
# Linux arm64
- runs-on: ubuntu-22.04-arm
python-version: "3.13"
# Linux amd64
- runs-on: ubuntu-latest
python-version: "3.10"
MINIMUM_REQUIREMENTS: 1
OPTIONS_NAME: "minimum-req"
- platform_id: manylinux_x86_64
- runs-on: ubuntu-latest
python-version: "3.10"
USE_SCIPY: 1
OPTIONS_NAME: "with-scipy"
- platform_id: manylinux_x86_64
- runs-on: ubuntu-latest
python-version: "3.10"
USE_SDIST: 1
OPTIONS_NAME: "install-from-sdist"
- platform_id: manylinux_x86_64
python-version: "3.12"
- runs-on: ubuntu-latest
python-version: "3.13"
PIP_FLAGS: "--pre"
OPTIONS_NAME: "pre-releases"
- platform_id: manylinux_x86_64
python-version: "3.12"
- runs-on: ubuntu-latest
python-version: "3.13"
OPTIONS_NAME: "editable-install"
steps:
- name: Checkout PyWavelets
Expand Down Expand Up @@ -183,7 +188,7 @@ jobs:
# Ensure that a wheel builder finishes even if another fails
fail-fast: false
matrix:
python-version: ["3.10", "3.12"]
python-version: ["3.10", "3.13"]
MINIMUM_REQUIREMENTS: [0]
USE_SCIPY: [0]
USE_SDIST: [0]
Expand All @@ -194,7 +199,7 @@ jobs:
- python-version: "3.10"
MINIMUM_REQUIREMENTS: 1
OPTIONS_NAME: "osx-minimum-req"
- python-version: "3.12"
- python-version: "3.13"
PIP_FLAGS: "--pre"
OPTIONS_NAME: "pre-releases"

Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/wheel_tests_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04-arm]
cibw_python: ["cp310", "cp311", "cp312", "cp313"]
cibw_arch: ["aarch64"]
steps:
Expand All @@ -89,10 +89,6 @@ jobs:
name: Install Python
with:
python-version: "3.10"
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

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

0 comments on commit 93babb4

Please sign in to comment.