Skip to content

Commit

Permalink
Add wheel build support for linux aarch64 (#839)
Browse files Browse the repository at this point in the history
Co-authored-by: odidev <odidev@puresoftware.com>
  • Loading branch information
ods and odidev committed Jun 29, 2022
1 parent a96d9d6 commit 5553d8f
Showing 1 changed file with 55 additions and 1 deletion.
56 changes: 55 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 5553d8f

Please sign in to comment.