forked from zopefoundation/persistent
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.travis.yml
More file actions
136 lines (116 loc) · 3.99 KB
/
.travis.yml
File metadata and controls
136 lines (116 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
language: python
env:
global:
- TWINE_USERNAME: zope.wheelbuilder
# this sets $PYPIPASSWORD
- secure: "NTWzDr5p8KRPNt+sniTot7csbzC87rzir/XfLtENE0GpQ49FlKw3lBhsDqAPoD8Ea5lwiHXmC/C/ci1UZhFvVEkAoQ2qJlMRnhqUdRJSrqcitmRt0fT6mLaTd+Lr+DxKlBxpssobrEm2G42V/G1s0Ggym04OqF8T+s6MF5ywgJM="
# We want to require the C extensions to build and function
# everywhere (except where we specifically opt-out, currently just
# PyPy, where they build but don't quite work).
- PURE_PYTHON: 0
python:
- 2.7
- 3.5
- 3.6
- 3.7
- 3.8
- 3.9-dev
jobs:
include:
# Don't test C extensions on PyPy.
- python: pypy
env: PURE_PYTHON=1
- python: pypy3
env: PURE_PYTHON=1
# Special Linux builds
- name: "Python: 2.7, pure (no C extensions)"
python: 2.7
env: PURE_PYTHON=1
# Test for https://github.com/zopefoundation/persistent/issues/86
- name: "Python: 3.6, -fno-wrapv"
python: 3.6
env: CFLAGS="-fno-wrapv"
- name: "Python: 3.7, pure (no C extensions)"
python: 3.7
env: PURE_PYTHON=1
- name: "Documentation"
python: 3.6
install:
- pip install -U -e .[docs]
script:
- sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
- sphinx-build -b doctest -d docs/_build/doctrees docs docs/_build/doctest
after_success:
# 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
# We require at least 2.7.15 to upload wheels.
# See https://github.com/zopefoundation/BTrees/issues/113
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
# NB: 3.6.0 causes https://github.com/nedbat/coveragepy/issues/703
# NB: 3.6.1 had that ABI regression (fixed in 3.6.2) and would be a bad
# version to use
env: TERRYFY_PYTHON='macpython 3.6.2'
- name: Python 3.7 wheels for MacOS
os: osx
language: generic
env: TERRYFY_PYTHON='macpython 3.7.0'
- name: Python 3.8 wheels for MacOS
os: osx
language: generic
env: TERRYFY_PYTHON='macpython 3.8.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:
- python -m pip install -U pip setuptools cffi wheel coverage coveralls
- python -m pip install -U -e .[test]
script:
- python --version
# make sure we can build a wheel
- python setup.py bdist_wheel
# coverage makes PyPy run about 3x slower, but the tests only take
# .4s to begin with (the whole process takes about 1.5), so that's
# still only 4.5s, which is maneagable.
- python -m coverage run -m zope.testrunner --test-path=. --auto-color --auto-progress
after_success:
- python -m coveralls
- |
if [[ $TRAVIS_TAG && "$TRAVIS_OS_NAME" == "osx" ]]; then
pip install twine
python setup.py bdist_wheel
TWINE_PASSWORD=$PYPIPASSWORD twine upload --skip-existing dist/*
fi
- |
if [[ $TRAVIS_TAG && -n "$DOCKER_IMAGE" ]]; then
pip install twine
TWINE_PASSWORD=$PYPIPASSWORD twine upload --skip-existing wheelhouse/*
fi
notifications:
email: false
cache: pip