Skip to content

Commit

Permalink
Split in 2 workflow to speed things up
Browse files Browse the repository at this point in the history
  • Loading branch information
nabla-c0d3 committed Dec 26, 2024
1 parent 48ecaf4 commit 5235bfb
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 9 deletions.
9 changes: 0 additions & 9 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,6 @@ jobs:
- name: Install cibuildwheel
run: python -m pip install "cibuildwheel>=2.22,<2.23"

# Needed for Linux aarch64 builds
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v1
with:
platforms: all

- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
Expand All @@ -55,10 +48,8 @@ jobs:
# Build wheels for Apple x86_64 only; we use another workflow for Apple arm64
CIBW_ARCHS_MACOS: "native"
# Build manylinux2014 wheels
CIBW_ARCHS_LINUX: auto aarch64
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
CIBW_MANYLINUX_I686_IMAGE: manylinux2014
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
# The C libraries (OpenSSL and Zlib) only need to be built once per OS
# as they are not tied to a specific Python version
CIBW_BEFORE_ALL: "python -m pip install setuptools invoke && invoke build.deps"
Expand Down
50 changes: 50 additions & 0 deletions .github/workflows/build_wheels_linux_aarch64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Workflow just for linux aarch64 wheels so it can run in parallel with the build_wheels workflow
name: Build aarch64 Wheels

on:
push:
branches: [ release ]
pull_request:
branches: [ release ]

jobs:
build_wheels:
name: Build aarch64 wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.10'

- name: Install cibuildwheel
run: python -m pip install "cibuildwheel>=2.22,<2.23"

# Needed for Linux aarch64 builds
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v1
with:
platforms: all

- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-*"
CIBW_ARCHS_LINUX: aarch64 # Specifically build linux aarch64 wheels
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
CIBW_BEFORE_ALL: "python -m pip install setuptools invoke && invoke build.deps"
CIBW_BEFORE_BUILD: "python -m pip install setuptools invoke && invoke build.nassl"
CIBW_TEST_REQUIRES: "pytest"
CIBW_TEST_COMMAND: "python -m pytest {project}/tests"

- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-wheels
path: ./wheelhouse/*.whl

0 comments on commit 5235bfb

Please sign in to comment.