Skip to content

Commit

Permalink
github actions: splitting linux arm64 wheels into seperate jobs for e…
Browse files Browse the repository at this point in the history
…ach python version in order to stay below the github actions timeout of 6 hours per job.
  • Loading branch information
StephenCzarnecki committed Oct 31, 2024
1 parent 90dc570 commit 99cd20d
Showing 1 changed file with 127 additions and 3 deletions.
130 changes: 127 additions & 3 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ jobs:
with:
path: wheelhouse/*.whl

build_wheels_manylinux_arm64:
name: Build manylinux wheels (arm64)
build_wheels_manylinux_arm64_python_3.8:
name: Build manylinux wheels python3.8 (arm64)
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
Expand All @@ -131,7 +131,131 @@ jobs:
- name: Build wheels with cibuildwheel
env:
CIBW_PLATFORM: "linux"
CIBW_SKIP: "cp36-* cp37-*"
CIBW_BUILD: "cp38-*"
CIBW_ARCHS_LINUX: "aarch64"
run: |
cibuildwheel --output-dir wheelhouse
- name: upload wheels
uses: actions/upload-artifact@v3
with:
path: wheelhouse/*.whl

build_wheels_manylinux_arm64_python_3.9:
name: Build manylinux wheels python3.9 (arm64)
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Register QEMU for cross-architecture emulation
- name: Set up QEMU for cross-compilation
uses: docker/setup-qemu-action@v2
with:
platforms: arm64

- name: Install cibuildwheel
run: |
python -m pip install --upgrade pip
pip install cibuildwheel
- name: Build wheels with cibuildwheel
env:
CIBW_PLATFORM: "linux"
CIBW_BUILD: "cp39-*"
CIBW_ARCHS_LINUX: "aarch64"
run: |
cibuildwheel --output-dir wheelhouse
- name: upload wheels
uses: actions/upload-artifact@v3
with:
path: wheelhouse/*.whl

build_wheels_manylinux_arm64_python_3.10:
name: Build manylinux wheels python3.10 (arm64)
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Register QEMU for cross-architecture emulation
- name: Set up QEMU for cross-compilation
uses: docker/setup-qemu-action@v2
with:
platforms: arm64

- name: Install cibuildwheel
run: |
python -m pip install --upgrade pip
pip install cibuildwheel
- name: Build wheels with cibuildwheel
env:
CIBW_PLATFORM: "linux"
CIBW_BUILD: "cp310-*"
CIBW_ARCHS_LINUX: "aarch64"
run: |
cibuildwheel --output-dir wheelhouse
- name: upload wheels
uses: actions/upload-artifact@v3
with:
path: wheelhouse/*.whl

build_wheels_manylinux_arm64_python_3.11:
name: Build manylinux wheels python3.11 (arm64)
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Register QEMU for cross-architecture emulation
- name: Set up QEMU for cross-compilation
uses: docker/setup-qemu-action@v2
with:
platforms: arm64

- name: Install cibuildwheel
run: |
python -m pip install --upgrade pip
pip install cibuildwheel
- name: Build wheels with cibuildwheel
env:
CIBW_PLATFORM: "linux"
CIBW_BUILD: "cp311-*"
CIBW_ARCHS_LINUX: "aarch64"
run: |
cibuildwheel --output-dir wheelhouse
- name: upload wheels
uses: actions/upload-artifact@v3
with:
path: wheelhouse/*.whl

build_wheels_manylinux_arm64_python_3.12:
name: Build manylinux wheels python3.12 (arm64)
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Register QEMU for cross-architecture emulation
- name: Set up QEMU for cross-compilation
uses: docker/setup-qemu-action@v2
with:
platforms: arm64

- name: Install cibuildwheel
run: |
python -m pip install --upgrade pip
pip install cibuildwheel
- name: Build wheels with cibuildwheel
env:
CIBW_PLATFORM: "linux"
CIBW_BUILD: "cp312-*"
CIBW_ARCHS_LINUX: "aarch64"
run: |
cibuildwheel --output-dir wheelhouse
Expand Down

0 comments on commit 99cd20d

Please sign in to comment.