summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 8053eed65d45a0decf2916a449270d5ed16146bf (plain)
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
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.
    - os: osx
      osx_image: xcode10.1
      language: generic
      env: TOXENV=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 supported version, without xdist.
    - env: TOXENV=py37
      python: '3.7'

    # Coverage tracking is slow with pypy, skip it.
    - env: TOXENV=pypy3-xdist
      python: 'pypy3'

    - 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-twisted-xdist PYTEST_COVERAGE=1 PYTEST_ADDOPTS=

    # Specialized factors for py37.
    # Coverage for:
    # - test_sys_breakpoint_interception (via pexpect).
    - env: TOXENV=py37-pexpect PYTEST_COVERAGE=1
    - env: TOXENV=py37-pluggymaster-xdist
    - env: TOXENV=py37-freeze

    - env: TOXENV=py38-xdist
      python: '3.8-dev'

    - stage: 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

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

after_success:
  - |
    if [[ "$PYTEST_COVERAGE" = 1 ]]; then
      env CODECOV_NAME="$TOXENV-$TRAVIS_OS_NAME" scripts/report-coverage.sh
    fi

notifications:
  irc:
    channels:
      - "chat.freenode.net#pytest"
    on_success: change
    on_failure: change
    skip_join: true
  email:
    - pytest-commit@python.org