language: php

dist: trusty

php:
  - 5.6
  - 7.0
  - 7.1
  - 7.3

env:
  global:
    - DEFAULT=1

matrix:
  include:
    - php: 7.2
      env: PHPCS=1 DEFAULT=0

    - php: 7.2
      env: PHPSTAN=1 DEFAULT=0

before_script:
  - if [[ $PHPCS = 1 ]]; then composer require cakephp/cakephp-codesniffer:~2.1; fi
  - if [[ $DEFAULT = 1 ]]; then composer install; fi
  - if [[ $DEFAULT = 1 ]]; then composer run-script post-install-cmd --no-interaction; fi
  - if [[ $PHPSTAN = 1 ]]; then composer require --dev "phpstan/phpstan"; fi

script:
  - if [[ $DEFAULT = 1 ]]; then vendor/bin/phpunit; fi
  - if [[ $PHPCS = 1 ]]; then vendor/bin/phpcs -p --extensions=php --standard=vendor/cakephp/cakephp-codesniffer/CakePHP ./src ./tests ./config ./webroot; fi
  - if [[ $PHPSTAN = 1 ]]; then vendor/bin/phpstan analyse -l 5 src/; fi

notifications:
  email: false
