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