dist: trusty
language: php

install:
  - composer global require dealerdirect/phpcodesniffer-composer-installer;
  - composer global require phpcompatibility/php-compatibility;
  - if [[ "$PHPUNIT" ]]; then
      composer global require phpunit/phpunit ^$PHPUNIT;
    fi

script:
  - phpenv rehash
  # Run PHP_CodeSniffer on all versions
  - ~/.config/composer/vendor/bin/phpcs . --standard=phpcs.xml --warning-severity=0 --extensions=php -p;
  # Check PHP compatibility for the lowest and highest supported version
  - if [[ $TRAVIS_PHP_VERSION == "5.6" || $TRAVIS_PHP_VERSION == "7.3" ]]; then
      ~/.config/composer/vendor/bin/phpcs . --standard=phpcompatibility.xml --extensions=php -p;
    fi
  # Run unit tests on highest major version
  - if [[ ${TRAVIS_PHP_VERSION:0:1} == "7" ]]; then
      ~/.config/composer/vendor/bin/phpunit --configuration=phpunit.xml --include-path=lib/;
    fi

php:
  - 7.3

env:
  - PHPUNIT=6
  - PHPUNIT=7
  - PHPUNIT=8

matrix:
  fast_finish: true

  include:
    - php: 5.6
      env: PHPUNIT=
    - php: 7.0
    - php: 7.1
    - php: 7.2

  allow_failures:
    - php: 7.3
      env: PHPUNIT=7
    - php: 7.3
      env: PHPUNIT=8