language: php

sudo: false

php:
  - 5.5
  - 5.6
  - hhvm
  - 7.0
  - 7.1
  - 7.2

service:
  - mongodb

matrix:
  fast_finish: true
  include:
    - php: 5.6
      env: SYMFONY_VERSION=2.8.*
    - php: 5.6
      env: SYMFONY_VERSION=3.4.* COVERAGE=true
    # test the latest release (including beta releases)
    - php: 7.1
      env: SYMFONY_VERSION=2.8.* COVERAGE=true
    - php: 7.1
      env: SYMFONY_VERSION=3.4.* COVERAGE=true
    - php: 7.2
      env: SYMFONY_VERSION=2.8.* COVERAGE=true
    - php: 7.2
      env: SYMFONY_VERSION=3.4.* COVERAGE=true
    - php: 7.2
      env: DEPENDENCIES=beta
  allow_failures:
    - php: hhvm
    - php: 7.0

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

before_script:
  - if [ "$DEPENDENCIES" = "beta" ]; then composer config minimum-stability beta; fi;
  - if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then phpenv config-rm xdebug.ini; echo "memory_limit=2G" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
  - if [[ ${TRAVIS_PHP_VERSION:0:2} == "5." ]]; then yes '' | pecl -q install -f mongo-stable; fi
  - if [[ ${TRAVIS_PHP_VERSION:0:2} == "7." ]]; then pecl install -f mongodb-stable; fi
  - if [[ ${TRAVIS_PHP_VERSION:0:2} == "7." ]]; then composer config "platform.ext-mongo" "1.6.16" && composer require alcaeus/mongo-php-adapter; fi
  - composer self-update
  - if [ "$SYMFONY_VERSION" != "" ]; then composer require "symfony/symfony:${SYMFONY_VERSION}" --no-update; fi;
  - composer update --prefer-dist --no-interaction $COMPOSER_FLAGS

phpunit: if [ "$COVERAGE" == true ]; then phpunit --coverage-text; else phpunit; fi
