diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index eff779006..7ba9e3814 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -12,12 +12,19 @@ jobs: linux: name: Linux runs-on: ubuntu-20.04 + strategy: + matrix: + arch: [x86_64, aarch64] steps: - name: Checkout pygit2 uses: actions/checkout@v2 + - name: Set up QEMU + if: ${{ matrix.arch == 'aarch64' }} + uses: docker/setup-qemu-action@v1 + - run: | - /bin/sh travis/build-all-manylinux-wheels.sh + /bin/sh travis/build-all-manylinux-wheels.sh ${{ matrix.arch }} - name: Save wheels uses: actions/upload-artifact@v2 diff --git a/travis/build-all-manylinux-wheels.sh b/travis/build-all-manylinux-wheels.sh index 855e2a030..45ac120e4 100755 --- a/travis/build-all-manylinux-wheels.sh +++ b/travis/build-all-manylinux-wheels.sh @@ -3,8 +3,14 @@ set -x set -e +ARCH=$1 + # Wait for docker pull to complete downloading container -manylinux_image="ghcr.io/pyca/cryptography-manylinux2014:x86_64" +if [ $ARCH = 'aarch64' ]; then + manylinux_image="ghcr.io/pyca/cryptography-manylinux2014_${ARCH}" +else + manylinux_image="ghcr.io/pyca/cryptography-manylinux2014:${ARCH}" +fi docker pull "${manylinux_image}" & wait diff --git a/travis/build-manylinux-wheels.sh b/travis/build-manylinux-wheels.sh index 24f709c22..7ce53262c 100755 --- a/travis/build-manylinux-wheels.sh +++ b/travis/build-manylinux-wheels.sh @@ -10,8 +10,13 @@ export CFLAGS="-fPIC" export PKG_CONFIG_PATH="${OPENSSL_PATH}/lib/pkgconfig:${PYCA_OPENSSL_PATH}/lib/pkgconfig" # Install requirements -yum -y install git libffi-devel cmake3 +yum -y install git libffi-devel yum -y install openssl wget +if [ ${ARCH} == 'aarch64' ]; then + yum -y install cmake +else + yum -y install cmake3 +fi # Copy source directory so we don't mangle with it SRC_DIR=/io/src