156 lines
4.8 KiB
YAML
156 lines
4.8 KiB
YAML
language: python
|
|
dist: xenial
|
|
stages:
|
|
- baseline
|
|
- name: test
|
|
if: repo = pytest-dev/pytest AND tag IS NOT present
|
|
- name: deploy
|
|
if: repo = pytest-dev/pytest AND tag IS present
|
|
python: '3.7'
|
|
cache: false
|
|
|
|
env:
|
|
global:
|
|
- PYTEST_ADDOPTS=-vv
|
|
|
|
install:
|
|
- python -m pip install --upgrade --pre tox
|
|
|
|
jobs:
|
|
include:
|
|
# OSX tests - first (in test stage), since they are the slower ones.
|
|
- &test-macos
|
|
os: osx
|
|
osx_image: xcode10.1
|
|
language: generic
|
|
# Coverage for:
|
|
# - py2 with symlink in test_cmdline_python_package_symlink.
|
|
env: TOXENV=py27-xdist PYTEST_COVERAGE=1
|
|
before_install:
|
|
- python -V
|
|
- test $(python -c 'import sys; print("%d%d" % sys.version_info[0:2])') = 27
|
|
- <<: *test-macos
|
|
env: TOXENV=py37-pexpect,py37-xdist PYTEST_COVERAGE=1
|
|
before_install:
|
|
- which python3
|
|
- python3 -V
|
|
- ln -sfn "$(which python3)" /usr/local/bin/python
|
|
- python -V
|
|
- test $(python -c 'import sys; print("%d%d" % sys.version_info[0:2])') = 37
|
|
|
|
# Full run of latest (major) supported versions, without xdist.
|
|
- env: TOXENV=py27
|
|
python: '2.7'
|
|
- env: TOXENV=py37
|
|
python: '3.7'
|
|
|
|
# Coverage tracking is slow with pypy, skip it.
|
|
- env: TOXENV=pypy-xdist
|
|
python: 'pypy'
|
|
- env: TOXENV=pypy3-xdist
|
|
python: 'pypy3'
|
|
|
|
- env: TOXENV=py34-xdist
|
|
python: '3.4'
|
|
- env: TOXENV=py35-xdist
|
|
python: '3.5'
|
|
|
|
# Coverage for:
|
|
# - pytester's LsofFdLeakChecker
|
|
# - TestArgComplete (linux only)
|
|
# - numpy
|
|
# Empty PYTEST_ADDOPTS to run this non-verbose.
|
|
- env: TOXENV=py37-lsof-numpy-xdist PYTEST_COVERAGE=1 PYTEST_ADDOPTS=
|
|
|
|
# Specialized factors for py27.
|
|
- env: TOXENV=py27-nobyte-numpy-xdist
|
|
python: '2.7'
|
|
- env: TOXENV=py27-pluggymaster-xdist
|
|
python: '2.7'
|
|
|
|
# Specialized factors for py37.
|
|
# Coverage for:
|
|
# - test_sys_breakpoint_interception (via pexpect).
|
|
- env: TOXENV=py37-pexpect,py37-twisted PYTEST_COVERAGE=1
|
|
- env: TOXENV=py37-pluggymaster-xdist
|
|
- env: TOXENV=py37-freeze
|
|
|
|
# Jobs only run via Travis cron jobs (currently daily).
|
|
- env: TOXENV=py38-xdist
|
|
python: '3.8-dev'
|
|
if: type = cron
|
|
|
|
- stage: baseline
|
|
# Coverage for:
|
|
# - _pytest.unittest._handle_skip (via pexpect).
|
|
env: TOXENV=py27-pexpect,py27-twisted PYTEST_COVERAGE=1
|
|
python: '2.7'
|
|
# Use py36 here for faster baseline.
|
|
- env: TOXENV=py36-xdist
|
|
python: '3.6'
|
|
- env: TOXENV=linting,docs,doctesting PYTEST_COVERAGE=1
|
|
cache:
|
|
directories:
|
|
- $HOME/.cache/pre-commit
|
|
|
|
- stage: deploy
|
|
python: '3.6'
|
|
install: pip install -U setuptools setuptools_scm
|
|
script: skip
|
|
deploy:
|
|
provider: pypi
|
|
user: nicoddemus
|
|
distributions: sdist bdist_wheel
|
|
skip_upload_docs: true
|
|
password:
|
|
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=
|
|
on:
|
|
tags: true
|
|
repo: pytest-dev/pytest
|
|
|
|
matrix:
|
|
allow_failures:
|
|
- python: '3.8-dev'
|
|
env: TOXENV=py38-xdist
|
|
# Temporary (https://github.com/pytest-dev/pytest/pull/5334).
|
|
- env: TOXENV=pypy3-xdist
|
|
python: 'pypy3'
|
|
|
|
before_script:
|
|
- |
|
|
# Do not (re-)upload coverage with cron runs.
|
|
if [[ "$TRAVIS_EVENT_TYPE" = cron ]]; then
|
|
PYTEST_COVERAGE=0
|
|
fi
|
|
- |
|
|
if [[ "$PYTEST_COVERAGE" = 1 ]]; then
|
|
export COVERAGE_FILE="$PWD/.coverage"
|
|
export COVERAGE_PROCESS_START="$PWD/.coveragerc"
|
|
export _PYTEST_TOX_COVERAGE_RUN="coverage run -m"
|
|
export _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
|
|
fi
|
|
|
|
script: tox --recreate
|
|
|
|
after_success:
|
|
- |
|
|
if [[ "$PYTEST_COVERAGE" = 1 ]]; then
|
|
set -e
|
|
# Add last TOXENV to $PATH.
|
|
PATH="$PWD/.tox/${TOXENV##*,}/bin:$PATH"
|
|
coverage combine
|
|
coverage xml
|
|
coverage report -m
|
|
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
|
|
fi
|
|
|
|
notifications:
|
|
irc:
|
|
channels:
|
|
- "chat.freenode.net#pytest"
|
|
on_success: change
|
|
on_failure: change
|
|
skip_join: true
|
|
email:
|
|
- pytest-commit@python.org
|