language: php

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

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 != '7.0' ]]; then phpenv config-rm xdebug.ini; fi
  - composer self-update
  - composer install --prefer-source

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

after_script:
  - php vendor/bin/coveralls -v

matrix:
  exclude:
    - php: hhvm
      env: DB=pgsql  # driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency

sudo: false