diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c06265268..7b3f3d82e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ on: jobs: build: - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] @@ -23,10 +23,10 @@ jobs: arch: arm64 - os: ubuntu-latest arch: x86_64 - - os: windows-latest - arch: x86_64 - os: ubuntu-latest arch: aarch64 + - os: windows-latest + arch: x86_64 steps: - uses: actions/checkout@v2 @@ -46,6 +46,21 @@ jobs: - name: Install maturin run: pip install maturin + - name: Set up QEMU for cross-compilation + if: matrix.os == 'ubuntu-latest' && matrix.arch == 'aarch64' + run: | + sudo apt-get update + sudo apt-get install -y qemu binfmt-support qemu-user-static + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + + - name: Build wheel using manylinux2014 (AARCH64 Linux) + if: matrix.os == 'ubuntu-latest' && matrix.arch == 'aarch64' + run: | + docker run --rm -e PLAT=aarch64 \ + -v $(pwd):/io quay.io/pypa/manylinux2014_aarch64 \ + /opt/python/cp38-cp38/bin/python -m pip wheel /io -w /io/wheelhouse/ + shell: bash + - name: Build wheel (x86_64 macOS) if: matrix.os == 'macos-latest' && matrix.arch == 'x86_64' run: | @@ -76,13 +91,6 @@ jobs: maturin build --release shell: bash - - name: Build wheel (aarch64 Linux) - if: matrix.os == 'ubuntu-latest' && matrix.arch == 'aarch64' - run: | - docker run --rm -v $(pwd):/io quay.io/pypa/manylinux2014_aarch64 \ - /bin/bash -c "cd /io/python/delta-kernel-python && maturin build --release --target aarch64-unknown-linux-gnu" - shell: bash - - name: Upload wheels uses: actions/upload-artifact@v2 with: