diff --git a/.travis.yml b/.travis.yml index b485e21227..4acfde8072 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,11 @@ dist: xenial -sudo: false - language: python -python: - - "2.7" - - "3.5" - - "3.6" - - "3.7" - - "pypy2.7-6.0" - - "pypy3.5" +os: linux +services: docker env: - - CASS_DRIVER_NO_CYTHON=1 + global: + - CASS_DRIVER_NO_CYTHON=1 addons: apt: @@ -24,10 +18,46 @@ addons: - libev-dev install: + - pip install --upgrade setuptools - pip install tox-travis - if [[ $TRAVIS_PYTHON_VERSION != pypy3.5 ]]; then pip install lz4; fi + - if [[ $PLAT == aarch64 ]]; then uname -m; docker pull $DOCKER_IMAGE; fi script: - tox - tox -e gevent_loop - tox -e eventlet_loop + - if [[ $PLAT == aarch64 ]]; then docker run --rm -e PLAT=$PLAT -e PYTHON=$PYTHON -v $(realpath .):/src $DOCKER_IMAGE /src/build-arm64-wheels.sh; fi +jobs: + include: + - arch: amd64 + python: "pypy2.7-6.0" + + - arch: amd64 + python: "pypy3.5" + + - arch: amd64 + python: "3.5" + + - arch: amd64 + python: "2.7" + + - arch: amd64 + python: "3.6" + + - arch: amd64 + python: "3.7" + + - arch: arm64 + python: "3.7" + env: + - DOCKER_IMAGE=quay.io/pypa/manylinux2014_aarch64 + - PLAT=aarch64 + - PYTHON=cp37-cp37m + + - arch: arm64 + python: "3.8" + env: + - DOCKER_IMAGE=quay.io/pypa/manylinux2014_aarch64 + - PLAT=aarch64 + - PYTHON=cp38-cp38 diff --git a/build-arm64-wheels.sh b/build-arm64-wheels.sh new file mode 100755 index 0000000000..95b969f1e9 --- /dev/null +++ b/build-arm64-wheels.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -e -u -x +cd /src/ + +# Create binary wheels +/opt/python/${PYTHON}/bin/pip wheel /src/ -w wheelhouse/ + +ls -lrt wheelhouse/ + +# Normalize resulting binaries to a common format +for whl in wheelhouse/cassandra_driver-*.whl; do + auditwheel repair "$whl" -w wheelhouse/ +done diff --git a/tox.ini b/tox.ini index d883a1f973..6d94e11247 100644 --- a/tox.ini +++ b/tox.ini @@ -12,6 +12,7 @@ deps = nose pure-sasl kerberos futurist + greenlet>=0.4.14,<0.4.17 lz4_dependency = py27,py35,py36,py37,py38: lz4 [testenv]