summary refs log tree commit diff
path: root/.travis.yml
blob: 655fab9d8e8e19c2d7e61d8e6c638c7960e7aa55 (plain) (blame)
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
sudo: false
language: python

cache:
  directories:
    # we only bother to cache the wheels; parts of the http cache get
    # invalidated every build (because they get served with a max-age of 600
    # seconds), which means that we end up re-uploading the whole cache for
    # every build, which is time-consuming In any case, it's not obvious that
    # downloading the cache from S3 would be much faster than downloading the
    # originals from pypi.
    #
    - $HOME/.cache/pip/wheels

# don't clone the whole repo history, one commit will do
git:
  depth: 1

# only build branches we care about (PRs are built seperately)
branches:
  only:
    - master
    - develop
    - /^release-v/

# When running the tox environments that call Twisted Trial, we can pass the -j
# flag to run the tests concurrently. We set this to 2 for CPU bound tests
# (SQLite) and 4 for I/O bound tests (PostgreSQL).
matrix:
  fast_finish: true
  include:
  - python: 2.7
    env: TOX_ENV=packaging

  - python: 3.6
    env: TOX_ENV="pep8,check_isort"

  - python: 2.7
    env: TOX_ENV=py27 TRIAL_FLAGS="-j 2"

  - python: 2.7
    env: TOX_ENV=py27-old TRIAL_FLAGS="-j 2"

  - python: 2.7
    env: TOX_ENV=py27-postgres TRIAL_FLAGS="-j 4"
    services:
      - postgresql

  - python: 3.5
    env: TOX_ENV=py35 TRIAL_FLAGS="-j 2"

  - python: 3.6
    env: TOX_ENV=py36 TRIAL_FLAGS="-j 2"

  - python: 3.6
    env: TOX_ENV=py36-postgres TRIAL_FLAGS="-j 4"
    services:
      - postgresql

  - # we only need to check for the newsfragment if it's a PR build
    if: type = pull_request
    python: 3.6
    env: TOX_ENV=check-newsfragment
    script:
      - git remote set-branches --add origin develop
      - git fetch origin develop
      - tox -e $TOX_ENV

install:
  - pip install tox

script:
  - tox -e $TOX_ENV