Skip to content

Commit

Permalink
Merge 63cbd21 into 666e46f
Browse files Browse the repository at this point in the history
  • Loading branch information
mgedmin committed Nov 11, 2019
2 parents 666e46f + 63cbd21 commit d876588
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 0 deletions.
22 changes: 22 additions & 0 deletions .manylinux-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash

set -e -x

# Compile wheels
for PYBIN in /opt/python/*/bin; do
if [[ "${PYBIN}" == *"cp27"* ]] || \
[[ "${PYBIN}" == *"cp35"* ]] || \
[[ "${PYBIN}" == *"cp36"* ]] || \
[[ "${PYBIN}" == *"cp37"* ]] || \
[[ "${PYBIN}" == *"cp38"* ]]; then
"${PYBIN}/pip" install -U pip setuptools cffi
"${PYBIN}/pip" install -e /io/
"${PYBIN}/pip" wheel /io/ -w wheelhouse/
rm -rf /io/build /io/*.egg-info
fi
done

# Bundle external shared libraries into the wheels
for whl in wheelhouse/zope.proxy*.whl; do
auditwheel repair "$whl" -w /io/wheelhouse/
done
5 changes: 5 additions & 0 deletions .manylinux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

set -e -x

docker run --rm -v "$(pwd)":/io $DOCKER_IMAGE $PRE_CMD /io/.manylinux-install.sh
76 changes: 76 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
language: python

env:
global:
TWINE_USERNAME: zope.wheelbuilder
TWINE_PASSWORD:
secure: "BWyhZtoO9jM3vatjfwdloThv7RY2p8AaN3D8T/8nEIupcgT5E6QKfLlIDibtlMNds2UU0q/HOJiSM/CwBsm5nzMke55m8OhfxfyHG+5TuBafwHtEkMyXe1VQtxnyB7Rlya2ylI9f4/3qXYqyLinBr3F+osE1g2nQmqQL2tpNmRA="

python:
- 2.7
- 3.5
Expand All @@ -14,19 +21,88 @@ jobs:
python: "2.7"
env: PURE_PYTHON=1

# manylinux wheel builds
- name: 64-bit manylinux wheels (all Pythons)
services: docker
env: DOCKER_IMAGE=quay.io/pypa/manylinux2010_x86_64
install: docker pull $DOCKER_IMAGE
script: bash .manylinux.sh

- name: 32-bit manylinux wheels (all Pythons)
services: docker
env: DOCKER_IMAGE=quay.io/pypa/manylinux2010_i686 PRE_CMD=linux32
install: docker pull $DOCKER_IMAGE
script: bash .manylinux.sh

# It's important to use 'macpython' builds to get the least
# restrictive wheel tag. It's also important to avoid
# 'homebrew 3' because it floats instead of being a specific version.
- name: Python 2.7 wheels for MacOS
os: osx
language: generic
env: TERRYFY_PYTHON='macpython 2.7.17'
- name: Python 3.5 wheels for MacOS
os: osx
language: generic
env: TERRYFY_PYTHON='macpython 3.5'
- name: Python 3.6 wheels for MacOS
os: osx
language: generic
env: TERRYFY_PYTHON='macpython 3.6.0'
- name: Python 3.7 wheels for MacOS
os: osx
language: generic
env: TERRYFY_PYTHON='macpython 3.7.0'

before_install:
- |
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
git clone https://github.com/MacPython/terryfy
source terryfy/travis_tools.sh
get_python_environment $TERRYFY_PYTHON venv
fi
install:
- pip install -U pip
- pip install -U setuptools
- pip install -U coverage coveralls
# NB: let's install . (zope.proxy) first separately, because we have a nasty
# dependency loop: .[test] wants zope.security that setup_requires zope.proxy
# (and setup_requires is broken on Mac OS Python 3.5 due to TLS version
# compatibility issues that pip knows how to work around, but setuptools
# don't).
- pip install -e .
- pip install -e .[test,docs]

script:
- python --version
- coverage run -m zope.testrunner --test-path=src
- sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
- coverage run -a -m sphinx -b doctest -d docs/_build/doctrees docs docs/_build/doctest
- python setup.py bdist_wheel

after_success:
- coveralls
- |
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
# macpython 3.5 doesn't support recent TLS protocols which causes twine
# upload to fail, so we use the system Python to run twine
/usr/bin/python -m ensurepip --user
/usr/bin/python -m pip install --user -U pip
/usr/bin/python -m pip install --user -U -I twine
/usr/bin/python -m twine check dist/*
if [[ $TRAVIS_TAG ]]; then
/usr/bin/python -m twine upload --skip-existing dist/*
fi
fi
- |
if [[ -n "$DOCKER_IMAGE" ]]; then
pip install twine
twine check wheelhouse/*
if [[ $TRAVIS_TAG ]]; then
twine upload --skip-existing wheelhouse/*
fi
fi
notifications:
email: false
Expand Down

0 comments on commit d876588

Please sign in to comment.