language: php

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

env:
  - SYMFONY_VERSION='2.7.*'

matrix:
  include:
    - php: 5.3
      dist: precise
      env: DEPS='lowest' SYMFONY_DEPRECATIONS_HELPER='2'
    - php: 5.6
      dist: precise
      env: DEPS='unmodified'
    - php: 5.6
      env: SYMFONY_VERSION='2.7.*' PARAM_DB_DRIVER='pdo_sqlite'
    - php: 5.6
      env: SYMFONY_VERSION='2.8.*'
    - php: 5.6
      env: SYMFONY_VERSION='3.2.*'
    - php: 5.6
      dist: precise
      env: SYMFONY_VERSION='3.3.*'
    - php: 5.6
      dist: precise
      env: SYMFONY_VERSION='3.4.*' MIN_STABILITY='dev'
  allow_failures:
    - env: SYMFONY_VERSION='3.4.*' MIN_STABILITY='dev'
  fast_finish: true

install:
  # set unlimited memory_limit
  - if [ "${TRAVIS_PHP_VERSION}" != 'hhvm' ]; then INI_FILE=~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; else INI_FILE=/etc/hhvm/php.ini; fi;
  - echo "memory_limit = -1" >> "${INI_FILE}"
  # disable Xdebug for better Composer performance
  - if [ "${TRAVIS_PHP_VERSION}" != 'hhvm' ]; then mv ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini xdebug.ini; fi;
  # install dependencies using Composer
  - bash .travis_install_dependencies.sh
  # show installed dependencies
  - composer show

before_script:
  # create folder for code coverage data
  - mkdir -p build/logs

script:
  # validate composer.json
  - composer validate --strict --no-check-lock
  # enable Xdebug for code coverage analysis
  - if [ "${TRAVIS_PHP_VERSION}" != 'hhvm' ]; then mv xdebug.ini ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini; fi;
  # run PHPUnit
  - vendor/bin/phpunit -v --coverage-clover build/logs/clover.xml
  # upload code coverage data
  - if [ "${TRAVIS_PHP_VERSION}" != 'hhvm' ]; then travis_retry wget -q https://github.com/satooshi/php-coveralls/releases/download/v1.0.1/coveralls.phar && travis_retry php coveralls.phar -v; fi;

notifications:
  email:
    on_success: always
    on_failure: always

# use container-based infrastructure
sudo: false

# cache Composer's package cache
cache:
  directories:
    - $HOME/.composer/cache/files
    - vendor
