language: php
dist: trusty
git:
  depth: 3
  quiet: true
matrix:
  fast_finish: true
  allow_failures:
    - env: TEST_SUITE=Coverage
env:
  matrix:
    - TEST_SUITE=Unit
    - TEST_SUITE=Coverage
    - TEST_SUITE=Integration
php:
  - 7.4
sudo: false
cache:
  directories:
    - $HOME/.composer/cache
services:
  - mysql
before_install:
  - mysql -e 'CREATE DATABASE IF NOT EXISTS travis;'
before_script:
  - echo 'opcache.enable_cli=1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
  - cp .env.travis .env
  - travis_retry composer install --no-interaction --prefer-dist --no-suggest
script:
  - if [ "$TEST_SUITE" = "Unit" ]; then vendor/bin/phpunit --bootstrap vendor/autoload.php tests/Unit; fi;
  - if [ "$TEST_SUITE" = "Coverage" ]; then vendor/bin/phpunit --bootstrap vendor/autoload.php --coverage-clover coverage.xml tests/Unit; fi;
  - if [ "$TEST_SUITE" = "Integration" ]; then vendor/bin/phpunit tests/Integration; fi;
notifications:
  email: false
after_success:
  - bash <(curl -s https://codecov.io/bash)