11language : python
22dist : xenial
3- stages :
4- - baseline
5- - name : test
6- if : repo = pytest-dev/pytest AND tag IS NOT present
7- - name : deploy
8- if : repo = pytest-dev/pytest AND tag IS present
9- python : ' 3.7'
3+ python : ' 3.7.4'
104cache : false
115
126env :
137 global :
14- - PYTEST_ADDOPTS=-vv
8+ - PYTEST_ADDOPTS="-vv --showlocals --durations=100 --exitfirst"
9+ - PYTEST_COVERAGE=1
1510
1611# setuptools-scm needs all tags in order to obtain a proper version
1712git :
@@ -22,113 +17,44 @@ install:
2217
2318jobs :
2419 include :
25- # OSX tests - first (in test stage), since they are the slower ones.
26- - &test-macos
27- os : osx
28- osx_image : xcode10.1
29- language : generic
30- # Coverage for:
31- # - py2 with symlink in test_cmdline_python_package_symlink.
32- env : TOXENV=py27-xdist PYTEST_COVERAGE=1
33- before_install :
34- - python -V
35- - test $(python -c 'import sys; print("%d%d" % sys.version_info[0:2])') = 27
36- - << : *test-macos
37- env : TOXENV=py37-pexpect,py37-xdist PYTEST_COVERAGE=1
38- before_install :
39- - which python3
40- - python3 -V
41- - ln -sfn "$(which python3)" /usr/local/bin/python
42- - python -V
43- - test $(python -c 'import sys; print("%d%d" % sys.version_info[0:2])') = 37
44-
45- # Full run of latest (major) supported versions, without xdist.
46- - env : TOXENV=py27
20+ # Coverage for:
21+ # - TestArgComplete (linux only)
22+ # - numpy
23+ # - verbose=0
24+ - stage : baseline
25+ env : TOXENV=py27-xdist
4726 python : ' 2.7'
48- - env : TOXENV=py37
49- python : ' 3.7'
5027
51- # Coverage tracking is slow with pypy, skip it.
52- - env : TOXENV=pypy-xdist
53- python : ' pypy'
54- - env : TOXENV=pypy3-xdist
55- python : ' pypy3'
28+ - env : TOXENV=py38-xdist
29+ python : ' 3.8'
30+
31+ - stage : tests
32+ # - _pytest.unittest._handle_skip (via pexpect).
33+ env : TOXENV=py27-pexpect,py27-twisted
34+ python : ' 2.7'
5635
57- - env : TOXENV=py34-xdist
58- python : ' 3.4'
5936 - env : TOXENV=py35-xdist
60- python : ' 3.5'
37+ python : ' 3.5.9 '
6138
62- # Coverage for:
63- # - pytester's LsofFdLeakChecker
64- # - TestArgComplete (linux only)
65- # - numpy
66- # Empty PYTEST_ADDOPTS to run this non-verbose.
67- - env : TOXENV=py37-lsof-numpy-xdist PYTEST_COVERAGE=1 PYTEST_ADDOPTS=
39+ - env : TOXENV=py36-xdist PYTEST_REORDER_TESTS=0
40+ python : ' 3.6.9'
6841
69- # Specialized factors for py27.
70- - env : TOXENV=py27-nobyte-numpy-xdist
71- python : ' 2.7'
72- - env : TOXENV=py27-pluggymaster-xdist
73- python : ' 2.7'
42+ - env : TOXENV=py37-numpy-pexpect-twisted
43+ python : ' 3.7.4'
7444
75- # Specialized factors for py37.
76- # Coverage for:
7745 # - test_sys_breakpoint_interception (via pexpect).
78- - env : TOXENV=py37-pexpect,py37-twisted PYTEST_COVERAGE=1
79- - env : TOXENV=py37-pluggymaster-xdist
80- - env : TOXENV=py37-freeze
46+ - env : TOXENV=py37-pexpect,py37-twisted
47+ python : ' 3.7.4'
8148
82- # Jobs only run via Travis cron jobs (currently daily).
83- - env : TOXENV=py38-xdist
84- python : ' 3.8-dev'
85- if : type = cron
49+ # Run also non-verbosely, to gain coverage
50+ - env : TOXENV=py38-xdist PYTEST_ADDOPTS=""
51+ python : ' 3.8'
8652
87- - stage : baseline
88- # Coverage for:
89- # - _pytest.unittest._handle_skip (via pexpect).
90- env : TOXENV=py27-pexpect,py27-twisted PYTEST_COVERAGE=1
91- python : ' 2.7'
92- # Use py36 here for faster baseline.
93- - env : TOXENV=py36-xdist
94- python : ' 3.6'
95- - env : TOXENV=linting,docs,doctesting PYTEST_COVERAGE=1
53+ - env : TOXENV=linting,docs,doctesting
9654 cache :
9755 directories :
9856 - $HOME/.cache/pre-commit
9957
100- - stage : deploy
101- python : ' 3.6'
102- install : pip install -U setuptools setuptools_scm tox
103- script : skip
104- # token to upload github release notes: GH_RELEASE_NOTES_TOKEN
105- env :
106- - secure : " OjOeL7/0JUDkV00SsTs732e8vQjHynpbG9FKTNtZZJ+1Zn4Cib+hAlwmlBnvVukML0X60YpcfjnC4quDOIGLPsh5zeXnvJmYtAIIUNQXjWz8NhcGYrhyzuP1rqV22U68RTCdmOq3lMYU/W2acwHP7T49PwJtOiUM5kF120UAQ0Zi5EmkqkIvH8oM5mO9Dlver+/U7Htpz9rhKrHBXQNCMZI6yj2aUyukqB2PN2fjAlDbCF//+FmvYw9NjT4GeFOSkTCf4ER9yfqs7yglRfwiLtOCZ2qKQhWZNsSJDB89rxIRXWavJUjJKeY2EW2/NkomYJDpqJLIF4JeFRw/HhA47CYPeo6BJqyyNV+0CovL1frpWfi9UQw2cMbgFUkUIUk3F6DD59PHNIOX2R/HX56dQsw7WKl3QuHlCOkICXYg8F7Ta684IoKjeTX03/6QNOkURfDBwfGszY0FpbxrjCSWKom6RyZdyidnESaxv9RzjcIRZVh1rp8KMrwS1OrwRSdG0zjlsPr49hWMenN/8fKgcHTV4/r1Tj6mip0dorSRCrgUNIeRBKgmui6FS8642ab5JNKOxMteVPVR2sFuhjOQ0Jy+PmvceYY9ZMWc3+/B/KVh0dZ3hwvLGZep/vxDS2PwCA5/xw31714vT5LxidKo8yECjBynMU/wUTTS695D3NY="
107- addons :
108- apt :
109- packages :
110- # required by publish_gh_release_notes
111- - pandoc
112- after_deploy : tox -e publish_gh_release_notes
113- deploy :
114- provider : pypi
115- user : nicoddemus
116- distributions : sdist bdist_wheel
117- skip_upload_docs : true
118- password :
119- secure : xanTgTUu6XDQVqB/0bwJQXoDMnU5tkwZc5koz6mBkkqZhKdNOi2CLoC1XhiSZ+ah24l4V1E0GAqY5kBBcy9d7NVe4WNg4tD095LsHw+CRU6/HCVIFfyk2IZ+FPAlguesCcUiJSXOrlBF+Wj68wEvLoK7EoRFbJeiZ/f91Ww1sbtDlqXABWGHrmhPJL5Wva7o7+wG7JwJowqdZg1pbQExsCc7b53w4v2RBu3D6TJaTAzHiVsW+nUSI67vKI/uf+cR/OixsTfy37wlHgSwihYmrYLFls3V0bSpahCim3bCgMaFZx8S8xrdgJ++PzBCof2HeflFKvW+VCkoYzGEG4NrTWJoNz6ni4red9GdvfjGH3YCjAKS56h9x58zp2E5rpsb/kVq5/45xzV+dq6JRuhQ1nJWjBC6fSKAc/bfwnuFK3EBxNLkvBssLHvsNjj5XG++cB8DdS9wVGUqjpoK4puaXUWFqy4q3S9F86HEsKNgExtieA9qNx+pCIZVs6JCXZNjr0I5eVNzqJIyggNgJG6RyravsU35t9Zd9doL5g4Y7UKmAGTn1Sz24HQ4sMQgXdm2SyD8gEK5je4tlhUvfGtDvMSlstq71kIn9nRpFnqB6MFlbYSEAZmo8dGbCquoUc++6Rum208wcVbrzzVtGlXB/Ow9AbFMYeAGA0+N/K1e59c=
120- on :
121- tags : true
122- repo : pytest-dev/pytest
123-
124- matrix :
125- allow_failures :
126- - python : ' 3.8-dev'
127- env : TOXENV=py38-xdist
128- # Temporary (https://github.com/pytest-dev/pytest/pull/5334).
129- - env : TOXENV=pypy3-xdist
130- python : ' pypy3'
131-
13258before_script :
13359 - |
13460 # Do not (re-)upload coverage with cron runs.
@@ -142,27 +68,13 @@ before_script:
14268 export _PYTEST_TOX_COVERAGE_RUN="coverage run -m"
14369 export _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
14470 fi
145-
146- script : tox
71+ script : env COLUMNS=120 python -m tox
14772
14873after_success :
14974 - |
15075 if [[ "$PYTEST_COVERAGE" = 1 ]]; then
151- set -e
152- # Add last TOXENV to $PATH.
153- PATH="$PWD/.tox/${TOXENV##*,}/bin:$PATH"
154- coverage combine
155- coverage xml
156- coverage report -m
157- bash <(curl -s https://codecov.io/bash) -Z -X gcov -X coveragepy -X search -X xcode -X gcovout -X fix -f coverage.xml -n $TOXENV-$TRAVIS_OS_NAME
76+ env CODECOV_NAME="$TOXENV-$TRAVIS_OS_NAME" scripts/report-coverage.sh
15877 fi
159-
160- notifications :
161- irc :
162- channels :
163- - " chat.freenode.net#pytest"
164- on_success : change
165- on_failure : change
166- skip_join : true
167- email :
168- 78+ branches :
79+ only :
80+ - 4.6.x
0 commit comments