Add wheel build support for linux aarch64
@@ -36,14 +36,23 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
+ arch: [auto]
+ include:
+ - os: ubuntu-latest
+ arch: aarch64
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.7
+ - name: Set up QEMU
+ if: ${{ matrix.arch == 'aarch64' }}
+ uses: docker/setup-qemu-action@v1
- name: Build wheels
env:
+ CIBW_ARCHS_LINUX: ${{matrix.arch}}
CIBW_BUILD: cp36-* cp37-* cp38-* cp39-*
+ CIBW_SKIP: '*-musllinux*'
CIBW_BEFORE_BUILD_LINUX: pip install -r requirements-cython.txt && yum install -y zlib-devel
# On windows and mac we should have z library preinstalled
CIBW_BEFORE_BUILD: pip install -r requirements-cython.txt
@@ -198,10 +207,55 @@ jobs:
rm -rf aiokafka
make ci-test-unit
+ test-wheels-aarch64-linux:
+ needs: [package-source, package-wheel]
+ runs-on: ubuntu-latest
+ env:
+ py: /opt/python/${{ matrix.pyver }}/bin/python
+ img: quay.io/pypa/manylinux2014_aarch64
+
+ strategy:
+ matrix:
+ include:
+ - pyver: cp36-cp36m
+ aiokafka_whl: dist/aiokafka-*-cp36-cp36m-manylinux*_aarch64.whl
+ - pyver: cp37-cp37m
+ aiokafka_whl: dist/aiokafka-*-cp37-cp37m-manylinux*_aarch64.whl
+ - pyver: cp38-cp38
+ aiokafka_whl: dist/aiokafka-*-cp38-cp38-manylinux*_aarch64.whl
+ - pyver: cp39-cp39
+ aiokafka_whl: dist/aiokafka-*-cp39-cp39-manylinux*_aarch64.whl
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up QEMU
+ id: qemu
+ uses: docker/setup-qemu-action@v1
+ - name: Download distributions
+ uses: actions/download-artifact@v2
+ with:
+ name: dist
+ path: dist/
+ - name: Test Wheel
+ run: |
+ docker run --rm -v ${{ github.workspace }}:/ws:rw --workdir=/ws \
+ ${{ env.img }} \
+ bash -exc '${{ env.py }} -m venv .env && \
+ source .env/bin/activate && \
+ yum install -y epel-release && \
+ yum-config-manager --enable epel && \
+ yum install -y snappy-devel libzstd-devel krb5-devel && \
+ pip install --upgrade pip setuptools wheel && \
+ pip install -r requirements-ci.txt && \
+ pip install ${{ matrix.aiokafka_whl }} && \
+ rm -rf aiokafka && \
+ make ci-test-unit && \
+ deactivate'
+
deploy:
runs-on: ubuntu-latest
- needs: [test-wheels-linux, test-wheels-mac, test-wheels-windows]
+ needs: [test-wheels-linux, test-wheels-aarch64-linux, test-wheels-mac, test-wheels-windows]
steps:
- uses: actions/checkout@v2
