language: php

php:
  - 5.4
  - 5.5
  - 5.6
  - 7.0
  - hhvm
  - hhvm-nightly

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 [[ $TRAVIS_PHP_VERSION != '5.6' && $TRAVIS_PHP_VERSION != 'hhvm' && $TRAVIS_PHP_VERSION != 'hhvm-nightly' && $TRAVIS_PHP_VERSION != '7.0' ]]; 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:
  exclude:
    - php: hhvm
      env: DB=pgsql  # driver currently unsupported by HHVM
    - php: hhvm
      env: DB=mysqli # driver currently unsupported by HHVM
    - php: hhvm-nightly
      env: DB=pgsql  # driver currently unsupported by HHVM
    - php: hhvm-nightly
      env: DB=mysqli # driver currently unsupported by HHVM
  allow_failures:
    - php: 7.0
    - php: hhvm-nightly # hhvm-nightly currently chokes on composer installation