synapse/.travis.yml

102 lines
2.8 KiB
YAML
Raw Normal View History

2016-12-06 05:51:32 -07:00
sudo: false
language: python
2018-10-24 18:00:58 -06: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 05:51:32 -07:00
2018-10-24 06:41:31 -06:00
# 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
2018-10-24 08:09:05 -06:00
- /^release-v/
- rav/pg95
# 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-29 17:58:31 -06:00
matrix:
fast_finish: true
2018-04-29 17:58:31 -06:00
include:
- name: "pep8"
python: 3.6
env: TOX_ENV="pep8,check_isort,packaging"
2018-04-29 17:58:31 -06:00
- name: "py2.7 / sqlite"
python: 2.7
env: TOX_ENV=py27,codecov TRIAL_FLAGS="-j 2"
- name: "py2.7 / sqlite / olddeps"
python: 2.7
env: TOX_ENV=py27-old TRIAL_FLAGS="-j 2"
- name: "py2.7 / postgres9.5"
python: 2.7
addons:
postgresql: "9.5"
env: TOX_ENV=py27-postgres,codecov TRIAL_FLAGS="-j 4"
services:
- postgresql
2018-08-13 00:47:46 -06:00
- name: "py3.5 / sqlite"
python: 3.5
env: TOX_ENV=py35,codecov TRIAL_FLAGS="-j 2"
2018-09-13 11:11:11 -06:00
- name: "py3.6 / sqlite"
python: 3.6
env: TOX_ENV=py36,codecov TRIAL_FLAGS="-j 2"
2016-12-06 05:51:32 -07:00
- name: "py3.6 / postgres9.4"
python: 3.6
addons:
postgresql: "9.4"
env: TOX_ENV=py36-postgres TRIAL_FLAGS="-j 4"
services:
- postgresql
- name: "py3.6 / postgres9.5"
python: 3.6
addons:
postgresql: "9.5"
env: TOX_ENV=py36-postgres,codecov TRIAL_FLAGS="-j 4"
services:
- postgresql
- # we only need to check for the newsfragment if it's a PR build
if: type = pull_request
name: "check-newsfragment"
python: 3.6
env: TOX_ENV=check-newsfragment
script:
- git remote set-branches --add origin develop
- git fetch origin develop
- tox -e $TOX_ENV
2016-12-06 05:51:32 -07:00
install:
# this just logs the postgres version we will be testing against (if any)
- psql -At -U postgres -c 'select version();'
2016-12-06 05:51:32 -07:00
- pip install tox
# 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 05:51:32 -07:00
script:
- tox -e $TOX_ENV