2019-02-20 10:42:24 +03:00
|
|
|
dist: xenial
|
2016-12-06 15:51:32 +03:00
|
|
|
language: python
|
|
|
|
|
2018-10-25 03:00:58 +03:00
|
|
|
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
|
2016-12-06 15:51:32 +03:00
|
|
|
|
2018-10-24 15:41:31 +03:00
|
|
|
# don't clone the whole repo history, one commit will do
|
|
|
|
git:
|
|
|
|
depth: 1
|
|
|
|
|
2018-10-24 16:43:29 +03:00
|
|
|
# only build branches we care about (PRs are built seperately)
|
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- master
|
|
|
|
- develop
|
2018-10-24 17:09:05 +03:00
|
|
|
- /^release-v/
|
2019-02-19 12:52:03 +03:00
|
|
|
- rav/pg95
|
2018-10-24 16:43:29 +03:00
|
|
|
|
2018-10-30 15:55:43 +03:00
|
|
|
# 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).
|
2018-04-30 02:58:31 +03:00
|
|
|
matrix:
|
2018-06-25 16:42:27 +03:00
|
|
|
fast_finish: true
|
2018-04-30 02:58:31 +03:00
|
|
|
include:
|
2019-02-19 12:52:03 +03:00
|
|
|
- name: "pep8"
|
|
|
|
python: 3.6
|
|
|
|
env: TOX_ENV="pep8,check_isort,packaging"
|
2018-04-30 02:58:31 +03:00
|
|
|
|
2019-02-19 12:52:03 +03:00
|
|
|
- name: "py2.7 / sqlite"
|
|
|
|
python: 2.7
|
2018-11-28 12:59:31 +03:00
|
|
|
env: TOX_ENV=py27,codecov TRIAL_FLAGS="-j 2"
|
2018-06-25 16:42:27 +03:00
|
|
|
|
2019-02-19 12:52:03 +03:00
|
|
|
- name: "py2.7 / sqlite / olddeps"
|
|
|
|
python: 2.7
|
2018-10-30 15:55:43 +03:00
|
|
|
env: TOX_ENV=py27-old TRIAL_FLAGS="-j 2"
|
2018-09-27 16:21:54 +03:00
|
|
|
|
2019-02-19 12:52:03 +03:00
|
|
|
- name: "py2.7 / postgres9.5"
|
|
|
|
python: 2.7
|
|
|
|
addons:
|
|
|
|
postgresql: "9.5"
|
2018-11-28 12:59:31 +03:00
|
|
|
env: TOX_ENV=py27-postgres,codecov TRIAL_FLAGS="-j 4"
|
2018-09-06 17:27:54 +03:00
|
|
|
services:
|
|
|
|
- postgresql
|
2018-08-13 09:47:46 +03:00
|
|
|
|
2019-02-19 12:52:03 +03:00
|
|
|
- name: "py3.5 / sqlite"
|
|
|
|
python: 3.5
|
2018-11-28 12:59:31 +03:00
|
|
|
env: TOX_ENV=py35,codecov TRIAL_FLAGS="-j 2"
|
2018-09-13 20:11:11 +03:00
|
|
|
|
2019-02-20 10:42:24 +03:00
|
|
|
- name: "py3.7 / sqlite"
|
|
|
|
python: 3.7
|
|
|
|
env: TOX_ENV=py37,codecov TRIAL_FLAGS="-j 2"
|
2016-12-06 15:51:32 +03:00
|
|
|
|
2019-02-20 10:42:24 +03:00
|
|
|
- name: "py3.7 / postgres9.4"
|
|
|
|
python: 3.7
|
2019-02-19 12:52:03 +03:00
|
|
|
addons:
|
|
|
|
postgresql: "9.4"
|
2019-02-20 10:42:24 +03:00
|
|
|
env: TOX_ENV=py37-postgres TRIAL_FLAGS="-j 4"
|
2019-02-19 12:52:03 +03:00
|
|
|
services:
|
|
|
|
- postgresql
|
|
|
|
|
2019-02-20 10:42:24 +03:00
|
|
|
- name: "py3.7 / postgres9.5"
|
|
|
|
python: 3.7
|
2019-02-19 12:52:03 +03:00
|
|
|
addons:
|
|
|
|
postgresql: "9.5"
|
2019-02-20 10:42:24 +03:00
|
|
|
env: TOX_ENV=py37-postgres,codecov TRIAL_FLAGS="-j 4"
|
2018-09-20 13:14:34 +03:00
|
|
|
services:
|
|
|
|
- postgresql
|
|
|
|
|
2018-10-24 16:49:25 +03:00
|
|
|
- # we only need to check for the newsfragment if it's a PR build
|
|
|
|
if: type = pull_request
|
2019-02-19 12:52:03 +03:00
|
|
|
name: "check-newsfragment"
|
2018-10-24 16:49:25 +03:00
|
|
|
python: 3.6
|
2019-02-22 13:56:59 +03:00
|
|
|
script: scripts-dev/check-newsfragment
|
2018-06-25 16:42:27 +03:00
|
|
|
|
2016-12-06 15:51:32 +03:00
|
|
|
install:
|
2019-02-19 12:52:03 +03:00
|
|
|
# this just logs the postgres version we will be testing against (if any)
|
2019-02-20 10:42:24 +03:00
|
|
|
- psql -At -U postgres -c 'select version();' || true
|
2019-02-19 12:52:03 +03:00
|
|
|
|
2016-12-06 15:51:32 +03:00
|
|
|
- pip install tox
|
2019-02-20 15:03:30 +03:00
|
|
|
|
2019-01-11 22:22:56 +03:00
|
|
|
# if we don't have python3.6 in this environment, travis unhelpfully gives us
|
|
|
|
# a `python3.6` on our path which does nothing but spit out a warning. Tox
|
|
|
|
# tries to run it (even if we're not running a py36 env), so the build logs
|
|
|
|
# then have warnings which look like errors. To reduce the noise, remove the
|
|
|
|
# non-functional python3.6.
|
|
|
|
- ( ! command -v python3.6 || python3.6 --version ) &>/dev/null || rm -f $(command -v python3.6)
|
2016-12-06 15:51:32 +03:00
|
|
|
|
|
|
|
script:
|
|
|
|
- tox -e $TOX_ENV
|