summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 59c7951e4079c56129a17f0498eb3b1a4b5b7035 (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
language: python
dist: xenial
python: '3.7'
cache: false

env:
  global:
    - PYTEST_ADDOPTS=-vv

# setuptools-scm needs all tags in order to obtain a proper version
git:
  depth: false

install:
  - python -m pip install --upgrade --pre tox

jobs:
  include:
    # OSX tests - first (in test stage), since they are the slower ones.
    # Coverage for:
    # - osx
    # - verbose=1
    - os: osx
      osx_image: xcode10.1
      language: generic
      env: TOXENV=py37-xdist PYTEST_COVERAGE=1 PYTEST_ADDOPTS=-v
      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.
    # Coverage for:
    # - pytester's LsofFdLeakChecker
    # - TestArgComplete (linux only)
    # - numpy
    # - old attrs
    # - verbose=0
    # - test_sys_breakpoint_interception (via pexpect).
    - env: TOXENV=py37-lsof-numpy-oldattrs-pexpect-twisted PYTEST_COVERAGE=1 PYTEST_ADDOPTS=
      python: '3.7'

    # Coverage for Python 3.5.{0,1} specific code, mostly typing related.
    - env: TOXENV=py35 PYTEST_COVERAGE=1 PYTEST_ADDOPTS="-k test_raises_cyclic_reference"
      python: '3.5.1'
      dist: trusty

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 -F Travis
    fi

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

branches:
  only:
    - master
    - features
    - 4.6-maintenance
    - /^\d+(\.\d+)+$/