summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 4de108cc185261fd4250cce30a09ead76df17706 (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
language: python
sudo: false
stage: test
dist: xenial

before_install:
  - env
  - openssl version
  - python -c "import ssl; print(ssl.OPENSSL_VERSION)"

install:
  - ./_travis/install.sh

script:
  - ./_travis/run.sh
  - ./_travis/upload_coverage.sh

cache:
  directories:
  - ${HOME}/.cache

notifications:
  email: false

env:
  global:
    - PYTHONWARNINGS=always::DeprecationWarning

    - PYPI_USERNAME=urllib3
    # PYPI_PASSWORD is set in Travis control panel.

matrix:
  include:
    # Lint & documentation.
    - python: 3.6
      env: NOX_SESSION=lint
    - python: 3.6
      env: NOX_SESSION=docs

    # Unit tests
    - python: 2.7
      env: NOX_SESSION=test-2.7
    - python: 3.4
      env: NOX_SESSION=test-3.4
    - python: 3.5
      env: NOX_SESSION=test-3.5
    - python: 3.6
      env: NOX_SESSION=test-3.6
    - python: 3.7
      env: NOX_SESSION=test-3.7
    - python: 3.8-dev
      env: NOX_SESSION=test-3.8
    - python: pypy2.7-6.0
      env: NOX_SESSION=test-pypy
    - python: pypy3.5-6.0
      env: NOX_SESSION=test-pypy

    # Extras
    - python: 2.7
      env: NOX_SESSION=app_engine GAE_SDK_PATH=${HOME}/.cache/google_appengine
    - python: 2.7
      env: NOX_SESSION=google_brotli-2
    - python: 3.7
      env: NOX_SESSION=google_brotli-3

    # OS X unit tests.
    - language: generic
      os: osx
      env: NOX_SESSION=test-2.7
    - language: generic
      os: osx
      env: NOX_SESSION=test-3.4
    - language: generic
      os: osx
      env: NOX_SESSION=test-3.5
    - language: generic
      os: osx
      env: NOX_SESSION=test-3.6
    - language: generic
      os: osx
      env: NOX_SESSION=test-3.7

    # Downstream integration tests.
    - python: 2.7
      env: DOWNSTREAM=requests
      stage: integration

    - python: 3.7
      env: DOWNSTREAM=requests
      stage: integration

    - python: 2.7
      env: DOWNSTREAM=botocore
      stage: integration

    - python: 3.7
      env: DOWNSTREAM=botocore
      stage: integration

    - python: 3.7
      stage: deploy
      script:
        - ./_travis/deploy.sh

stages:
  - name: test
    if: tag IS blank

  # Run integration tests for release candidates
  - name: integration
    if: type = pull_request AND head_branch =~ ^release-[\d.]+$ AND tag IS blank

  # Deploy on any tags
  - name: deploy
    if: tag IS present AND tag =~ /^(\d+\.\d+(?:.\d+)?)$/ AND repo = urllib3/urllib3