relstorage/.travis.yml

90 lines
2.1 KiB
YAML

language: python
sudo: false
services:
- mysql
- postgresql
- memcached
addons:
# Use postgresql 9.3 to get commit-lock testing
# Use postgresql 9.4 to get support for BLOB SQL functions for pg8000
# Use postgresql 9.5 to get support for INSERT ON CONFLICT UPDATE
# Use postgresql 9.6 ... just because
postgresql: "9.6"
matrix:
include:
- python: 2.7
env:
- ENV=cmysqlconnector
- RS_MY_DRIVER="C MySQL Connector/Python"
- python: 3.6
env: ENV=mysqlconnector
# PyPy 5.8.0 is knonwn to be broken. Check again
# when Travis updates.
#- python: pypy
# env: ENV=mysqlconnector
- python: 3.6
env: ENV=mysql
- python: 3.5
env: ENV=mysql
- python: 2.7
env:
- ENV=mysql
- OLDZODB=true
- python: pypy
env: ENV=mysql
- python: 3.5
env: ENV=pymysql
- python: 2.7
env: ENV=pymysql
- python: 2.7
env: ENV=umysqldb
- env: ENV=postgres
python: 2.7
- env: ENV=postgres
python: pypy
- env: ENV=postgres
python: 3.6
- env: ENV=pypostgres
python: 2.7
- env: ENV=pypostgres
python: 3.5
fast_finish: true
script:
# coverage slows PyPy down from 2minutes to 12+.
# But don't run the pymysql/pypy tests twice.
- if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pylint --rcfile=.pylintrc relstorage -f parseable -r n; fi
- if [[ $TRAVIS_PYTHON_VERSION == pypy* ]]; then python -m relstorage.tests.alltests -v; fi
- if [[ $TRAVIS_PYTHON_VERSION != pypy* ]]; then coverage run -m relstorage.tests.alltests -v; fi
after_success:
- coveralls
notifications:
email: false
before_install:
- python --version
install:
- pip install -U pip setuptools
- pip install -U tox coveralls
- pip install -U "pylint>=1.7.1"
- if [[ $TRAVIS_PYTHON_VERSION == pypy* ]]; then pip install -U python-memcached; fi
- if [[ $TRAVIS_PYTHON_VERSION != pypy* ]]; then pip install -U pylibmc cffi; fi
- pip install -U -e ".[test]"
- .travis/setup-$ENV.sh
- if [[ $OLDZODB == true ]]; then .travis/setup-oldzodb.sh; fi
cache: pip
before_cache:
- rm -f $HOME/.cache/pip/log/debug.log