language: php

sudo: false

cache:
  directories:
    - $HOME/.composer/cache/files
    - $HOME/symfony-bridge/.phpunit

env:
  global:
    - CHECK_PHP_SYNTAX="false"
    - COVERAGE="false"
    - PHPUNIT_FLAGS="-v"
    - SYMFONY_PHPUNIT_DIR="$HOME/symfony-bridge/.phpunit"

matrix:
  fast_finish: true
  include:
    # Minimum supported dependencies with the latest and oldest PHP version
    - php: 7.2
      env: COMPOSER_FLAGS="--prefer-stable --prefer-lowest" SYMFONY_DEPRECATIONS_HELPER="max[self]=0"
    - php: 7.3
      env: COMPOSER_FLAGS="--prefer-stable --prefer-lowest" SYMFONY_DEPRECATIONS_HELPER="max[self]=0"

    # Test the latest stable release
    - php: 7.2
    - php: 7.3
      env: CHECK_PHP_SYNTAX="true"

    #   # Test LTS versions. This makes sure we do not use Symfony packages with version greater
    #   # than 2 or 3 respectively. Read more at https://github.com/symfony/lts
    # - php: 7.2
    #   env: DEPENDENCIES="symfony/lts:^2"
    # - php: 7.2
    #   env: DEPENDENCIES="symfony/lts:^3"

      # Latest commit to master
    - php: 7.2
      env: STABILITY="dev"

  allow_failures:
    # dev-master is allowed to fail.
    - env: STABILITY="dev"

before_install:
  - if [[ $COVERAGE != true ]]; then phpenv config-rm xdebug.ini || true; fi
  - if ! [ -z "$STABILITY" ]; then composer config minimum-stability ${STABILITY}; fi;
  - if ! [ -v "$DEPENDENCIES" ]; then composer require --no-update ${DEPENDENCIES}; fi;

install:
  - composer update ${COMPOSER_FLAGS} --prefer-dist --no-interaction
  # Force most recent version of PHPUnit
  - ./vendor/bin/simple-phpunit install

script:
  - composer validate --strict --no-check-lock
  # Force most recent version of PHPUnit
  - ./vendor/bin/simple-phpunit $PHPUNIT_FLAGS
  - if [[ "$CHECK_PHP_SYNTAX" == "true" ]]; then php ./vendor/bin/php-cs-fixer fix --no-interaction --dry-run --diff -v; fi;
