diff --git a/.travis.yml b/.travis.yml index 76ac660..51e4a73 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,15 +7,22 @@ matrix: services: - docker env: DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + PLAT=manylinux1_x86_64 - sudo: required services: - docker env: DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 PRE_CMD=linux32 + PLAT=manylinux1_i686 + - sudo: required + services: + - docker + env: DOCKER_IMAGE=quay.io/pypa/manylinux2010_x86_64 + PLAT=manylinux2010_x86_64 install: - docker pull $DOCKER_IMAGE script: - - docker run --rm -v `pwd`:/io $DOCKER_IMAGE $PRE_CMD /io/travis/build-wheels.sh + - docker run --rm -e PLAT=$PLAT -v `pwd`:/io $DOCKER_IMAGE $PRE_CMD /io/travis/build-wheels.sh - ls wheelhouse/ diff --git a/README.md b/README.md index 202c150..988837c 100644 --- a/README.md +++ b/README.md @@ -6,17 +6,20 @@ Demo project for building Python wheels for Linux with Travis-CI This is an example of how to use Travis-CI to build -[PEP 513](https://www.python.org/dev/peps/pep-0513/)-compatible manylinux1 -wheels for Python. It supports both Python 2 and 3 on 32 and 64 bit linux -architectures. +[PEP 513](https://www.python.org/dev/peps/pep-0513/)-compatible +wheels for Python. It supports -Because these wheels need to be compiled on CentOS 5, this example uses Docker -running on Travis-CI to compile (you don't need to use docker at all to _use_ -these wheels, it's just to compile them). The docker-based build environment -images are: +- manylinux1 for both Python 2 and 3 on 32 and 64 bit linux architectures. +- manylinux2010 for Python 2 and 3 on 64 bit linux architectures. -- 64-bit image (x86-64): ``quay.io/pypa/manylinux1_x86_64`` [![Docker Repository on Quay](https://quay.io/repository/pypa/manylinux1_x86_64/status "Docker Repository on Quay")](https://quay.io/repository/pypa/manylinux1_x86_64) -- 32-bit image (i686): ``quay.io/pypa/manylinux1_i686`` [![Docker Repository on Quay](https://quay.io/repository/pypa/manylinux1_i686/status "Docker Repository on Quay")](https://quay.io/repository/pypa/manylinux1_i686) +Because these wheels need to be compiled with a specific toolchain and support +libraries , this example uses Docker running on Travis-CI to compile (you don't +need to use docker at all to _use_ these wheels, it's just to compile them). +The docker-based build environment images are: + +- 64-bit image for manylinux1 (x86-64): ``quay.io/pypa/manylinux1_x86_64`` [![Docker Repository on Quay](https://quay.io/repository/pypa/manylinux1_x86_64/status "Docker Repository on Quay")](https://quay.io/repository/pypa/manylinux1_x86_64) +- 32-bit image for manylinux1 (i686): ``quay.io/pypa/manylinux1_i686`` [![Docker Repository on Quay](https://quay.io/repository/pypa/manylinux1_i686/status "Docker Repository on Quay")](https://quay.io/repository/pypa/manylinux1_i686) +- 64-bit image for manylinux2010 (x86-64): ``quay.io/pypa/manylinux2010_x86_64`` [![Docker Repository on Quay](https://quay.io/repository/pypa/manylinux2010_x86_64/status "Docker Repository on Quay")](https://quay.io/repository/pypa/manylinux2010_x86_64) This sample project contains a very simple C compile extension module that links to an external library (ATLAS, a linear algebra library). The build is @@ -31,13 +34,12 @@ resulting build logs can be found at https://travis-ci.org/pypa/python-manylinux-demo The `.travis.yml` file instructs Travis to run the script -`travis/build-wheels.sh` inside of the 32-bit and 64-bit manylinux1 docker -build environments. This script builds the package using `pip`. But these -wheels link against an external library. So to create self-contained wheels, -the build script runs the wheels through -[`auditwheel`](https://pypi.python.org/pypi/auditwheel), which copies the external -library into the wheel itself, so that users won't need to install any extra non-PyPI -dependencies. +`travis/build-wheels.sh` inside of the various docker build environments. This +script builds the package using `pip`. But these wheels link against an +external library. So to create self-contained wheels, the build script runs the +wheels through [`auditwheel`](https://pypi.python.org/pypi/auditwheel), which +copies the external library into the wheel itself, so that users won't need to +install any extra non-PyPI dependencies. Code of Conduct --------------- diff --git a/travis/build-wheels.sh b/travis/build-wheels.sh index e8aa452..e7d48cd 100755 --- a/travis/build-wheels.sh +++ b/travis/build-wheels.sh @@ -12,7 +12,7 @@ done # Bundle external shared libraries into the wheels for whl in wheelhouse/*.whl; do - auditwheel repair "$whl" -w /io/wheelhouse/ + auditwheel repair "$whl" --plat $PLAT -w /io/wheelhouse/ done # Install packages and test