language: php

php:
  - 5.4
  - 5.5
  - 5.6
  - 7.0

env:
  - DB=mysql
  - DB=pgsql
  - DB=sqlite

before_script:
  - if [[ $TRAVIS_PHP_VERSION = '5.6' && $DB = 'sqlite' ]]; then PHPUNIT_FLAGS="--coverage-clover ./build/logs/clover.xml"; else PHPUNIT_FLAGS=""; fi
  - if [[ $PHPUNIT_FLAGS == "" ]]; then phpenv config-rm xdebug.ini; fi
  - composer self-update
  - composer install --prefer-source --dev

script:
  - ENABLE_SECOND_LEVEL_CACHE=0 ./vendor/bin/phpunit -v -c tests/travis/$DB.travis.xml $PHPUNIT_FLAGS
  - ENABLE_SECOND_LEVEL_CACHE=1 ./vendor/bin/phpunit -v -c tests/travis/$DB.travis.xml --exclude-group performance,non-cacheable,locking_functional

matrix:
  fast_finish: true
  allow_failures:
    - php: 7.0

cache:
  directories:
    - $HOME/.composer/cache