Skip to content

Commit

Permalink
Merge 80f215d into a874757
Browse files Browse the repository at this point in the history
  • Loading branch information
mgedmin committed Nov 10, 2019
2 parents a874757 + 80f215d commit ccc7ef8
Show file tree
Hide file tree
Showing 5 changed files with 136 additions and 23 deletions.
22 changes: 22 additions & 0 deletions .manylinux-install.sh
@@ -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.security*.whl; do
auditwheel repair "$whl" -w /io/wheelhouse/
done
5 changes: 5 additions & 0 deletions .manylinux.sh
@@ -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
119 changes: 98 additions & 21 deletions .travis.yml
@@ -1,31 +1,108 @@
language: python
dist: xenial

env:
global:
TWINE_USERNAME: zope.wheelbuilder
TWINE_PASSWORD:
secure: "U6CeZtNEPDN3qKXfrLcvHFLrowqNWxmapXLWygZRxKgfR+ypowe1Y0a4kCBEBZKtysbY26MmIkrMV07tEMxny1yUWVCvRvUaQw0Ic3t5CM0R019zjVh9fQUTdWGCwri86Qj/OaeuPeMR0LCr6d9nMSun0GWSWhjOUhkTCdchfQw="

python:
- 2.7
- 3.5
- 3.6
- 3.7
- 3.8
- pypy
- pypy3

matrix:
include:
- python: 2.7
- python: 3.5
- python: 3.6
- python: 3.7
- python: 3.8
- python: pypy2.7-6.0
- python: pypy3.5-6.0
- python: 2.7
env:
- PURE_PYTHON=1
- ZOPE_WATCH_CHECKERS=1
- python: 3.7

- name: "Python: 2.7, pure (no C extensions), with ZOPE_WATCH_CHECKERS enabled"
python: "2.7"
env: PURE_PYTHON=1 ZOPE_WATCH_CHECKERS=1

- name: "Python: 3.7, with ZOPE_WATCH_CHECKERS enabled"
python: 3.7
env: ZOPE_WATCH_CHECKERS=1
- python: 3.7

- name: "Python: 3.7, pure (no C extensions)"
python: 3.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 setuptools
- pip install -U coveralls coverage
- pip install -U -e .[test,docs]
- pip install -U pip setuptools
- pip install -U coveralls coverage
# pip install zope.proxy here because because setup_requires will use
# easy_install, which fails on Python 3.5 on Mac OS
- pip install -U zope.proxy
- pip install -U -e .[test,docs]

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

after_success:
- coveralls
- coveralls
- |
if [[ $TRAVIS_TAG && "$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 pip install twine
twine upload --skip-existing dist/*
fi
- |
if [[ $TRAVIS_TAG && -n "$DOCKER_IMAGE" ]]; then
pip install twine
twine upload --skip-existing wheelhouse/*
fi
notifications:
email: false
email: false

cache: pip
before_cache:
- rm -f $HOME/.cache/pip/log/debug.log
2 changes: 1 addition & 1 deletion CHANGES.rst
Expand Up @@ -7,7 +7,7 @@

- Drop support for Python 3.4.

- Add support for Python 3.8a3.
- Add support for Python 3.8.

- Properly declare dependency on zope.schema >= 4.2.0, introduced in
zope.security 4.2.1.
Expand Down
11 changes: 10 additions & 1 deletion appveyor.yml
Expand Up @@ -13,11 +13,20 @@ environment:
- python: 36-x64
- python: 37
- python: 37-x64
- python: 38
- python: 38-x64
- { python: 27, PURE_PYTHON: 1 }
- { python: 37, PURE_PYTHON: 1 }

install:
- "SET PATH=C:\\Python%PYTHON%;c:\\Python%PYTHON%\\scripts;%PATH%"
- ps: |
$env:PYTHON = "C:\\Python${env:PYTHON}"
if (-not (Test-Path $env:PYTHON)) {
curl -o install_python.ps1 https://raw.githubusercontent.com/matthew-brett/multibuild/11a389d78892cf90addac8f69433d5e22bfa422a/install_python.ps1
.\install_python.ps1
}
- ps: if (-not (Test-Path $env:PYTHON)) { throw "No $env:PYTHON" }
- echo "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 > "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat"
# We need to install the C extensions that BTrees setup-requires
# separately because we've seen problems with the BTrees build cleanup step trying
Expand All @@ -44,6 +53,6 @@ artifacts:
name: wheel

deploy_script:
- ps: if ($env:APPVEYOR_REPO_TAG -eq $TRUE -and $env:PURE_PYTHON -ne 1) { pip install twine; twine upload dist/* }
- ps: if ($env:APPVEYOR_REPO_TAG -eq $TRUE -and $env:PURE_PYTHON -ne 1) { pip install twine; twine upload --skip-existing dist/* }

deploy: on

0 comments on commit ccc7ef8

Please sign in to comment.