diff --git a/.github/workflows/build_wheels_linux_aarch64.yml b/.github/workflows/build_wheels_linux_aarch64.yml new file mode 100644 index 0000000..832c889 --- /dev/null +++ b/.github/workflows/build_wheels_linux_aarch64.yml @@ -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