summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: e3edbfe9b7cbbc2e8cccda88c42859789a351c4b (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
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

# 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 tracking is slow with pypy, skip it.
    - env: TOXENV=pypy3-xdist
      python: 'pypy3'

    - env: TOXENV=py35-xdist
      python: '3.5'

    # Specialized factors for py37.
    - env: TOXENV=py37-pluggymaster-xdist
    - env: TOXENV=py37-freeze

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

    - 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 tox
      script: skip
      # token to upload github release notes: GH_RELEASE_NOTES_TOKEN
      env:
        - secure: "OjOeL7/0JUDkV00SsTs732e8vQjHynpbG9FKTNtZZJ+1Zn4Cib+hAlwmlBnvVukML0X60YpcfjnC4quDOIGLPsh5zeXnvJmYtAIIUNQXjWz8NhcGYrhyzuP1rqV22U68RTCdmOq3lMYU/W2acwHP7T49PwJtOiUM5kF120UAQ0Zi5EmkqkIvH8oM5mO9Dlver+/U7Htpz9rhKrHBXQNCMZI6yj2aUyukqB2PN2fjAlDbCF//+FmvYw9NjT4GeFOSkTCf4ER9yfqs7yglRfwiLtOCZ2qKQhWZNsSJDB89rxIRXWavJUjJKeY2EW2/NkomYJDpqJLIF4JeFRw/HhA47CYPeo6BJqyyNV+0CovL1frpWfi9UQw2cMbgFUkUIUk3F6DD59PHNIOX2R/HX56dQsw7WKl3QuHlCOkICXYg8F7Ta684IoKjeTX03/6QNOkURfDBwfGszY0FpbxrjCSWKom6RyZdyidnESaxv9RzjcIRZVh1rp8KMrwS1OrwRSdG0zjlsPr49hWMenN/8fKgcHTV4/r1Tj6mip0dorSRCrgUNIeRBKgmui6FS8642ab5JNKOxMteVPVR2sFuhjOQ0Jy+PmvceYY9ZMWc3+/B/KVh0dZ3hwvLGZep/vxDS2PwCA5/xw31714vT5LxidKo8yECjBynMU/wUTTS695D3NY="
      addons:
        apt:
          packages:
            # required by publish_gh_release_notes
            - pandoc
      after_deploy: tox -e publish_gh_release_notes
      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

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

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