language: php

sudo: false

git:
  depth: 3

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

env:
  - COMPOSER_FLAGS="--prefer-stable --prefer-dist"

php:
<% if (project.phpVersion <= 5.6 && project.testPhpVersion != 5.6) { -%>
  - 5.6
<% }
if (project.phpVersion <= 7.0 && project.testPhpVersion != 7.0) { -%>
  - 7.0
<% }
if (project.phpVersion <= 7.1 && project.testPhpVersion != 7.1) { -%>
  - 7.1
<% }
if (project.phpVersion <= 7.2 && project.testPhpVersion != 7.2) { -%>
  - 7.2
<% }
if (project.supportNightly) { -%>
  - nightly
<% } -%>

matrix:
  fast_finish: true
  include:
    - php: <%= project.phpVersion %>
      env:
        - COMPOSER_FLAGS="--prefer-lowest --prefer-stable --prefer-dist"
    - php: <%= project.testPhpVersion %>
      env:
        - TEST_VERSION=true
        - COMPOSER_FLAGS="--prefer-stable --prefer-dist"
<% if (project.supportNightly) { -%>
  allow_failures:
    - php: nightly
<% } -%>

before_install:
  - if [[ -z $TEST_VERSION && -f "/home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini" ]]; then phpenv config-rm xdebug.ini; fi
  - composer global require hirak/prestissimo
  - composer self-update --stable --no-progress

install:
  - travis_retry composer update $COMPOSER_FLAGS --no-interaction --no-scripts --no-progress
<% if (control.coveralls) { -%>
  - if [[ $TEST_VERSION ]]; then travis_retry composer require php-coveralls/php-coveralls $COMPOSER_FLAGS --no-interaction --no-scripts --no-progress ; fi
<% } -%>

script:
  - if [[ $TEST_VERSION ]]; then composer qa <% if (control.coveralls) { -%>&& composer phpunit-clover <% } -%>; fi
  - if [[ -z $TEST_VERSION ]]; then composer phpunit ; fi
<% if (control.coveralls) { -%>

after_script:
  - if [[ $TEST_VERSION ]]; then travis_retry php vendor/bin/php-coveralls --verbose ; fi
<% } -%>
