language: php

cache:
  directories:
    - $HOME/.composer/

env:
  global:
    - COMPOSER_ARGS="--no-interaction"
    - COVERAGE_DEPS="php-coveralls/php-coveralls"
    - TESTS_LAMINAS_VALIDATOR_ONLINE_ENABLED=true

matrix:
  fast_finish: true
  include:
    - php: 7.1
      env:
        - DEPS=lowest
    - php: 7.1
      env:
        - DEPS=latest
        - EXECUTE_HOSTNAME_CHECK=true
        - CS_CHECK=true
        - TEST_COVERAGE=true
    - php: 7.2
      env:
        - DEPS=lowest
    - php: 7.2
      env:
        - DEPS=latest
    - php: 7.3
      env:
        - DEPS=lowest
    - php: 7.3
      env:
        - DEPS=latest
    - php: 7.4
      env:
        - DEPS=lowest
    - php: 7.4
      env:
        - DEPS=latest

before_install:
  - if [[ $TEST_COVERAGE != 'true' ]]; then phpenv config-rm xdebug.ini || return 0 ; fi

install:
  - travis_retry composer install $COMPOSER_ARGS
  - if [[ $DEPS == 'latest' ]]; then travis_retry composer update $COMPOSER_ARGS ; fi
  - if [[ $DEPS == 'lowest' ]]; then travis_retry composer update --prefer-lowest --prefer-stable $COMPOSER_ARGS ; fi
  - if [[ $TEST_COVERAGE == 'true' ]]; then travis_retry composer require --dev $COMPOSER_ARGS $COVERAGE_DEPS ; fi
  - stty cols 120 && composer show

script:
  - if [[ $TEST_COVERAGE == 'true' ]]; then composer test-coverage ; else composer test ; fi
  - if [[ $CS_CHECK == 'true' ]]; then composer cs-check ; fi
  - if [[ $EXECUTE_HOSTNAME_CHECK == "true" && $TRAVIS_PULL_REQUEST == "false" ]]; then php bin/update_hostname_validator.php --check-only; fi

after_script:
  - if [[ $TEST_COVERAGE == 'true' ]]; then travis_retry php vendor/bin/php-coveralls -v ; fi

notifications:
  email: false
