language: php
sudo: false
os:
  - linux
git:
  depth: 2
cache:
  directories:
    - $HOME/.composer/cache
services:
  - memcache
  - memcached
  - redis-server
matrix:
  fast_finish: true
  allow_failures:
    - php: nightly
  include:
    - php: 7.0
    - php: 7.1
    - php: 7.2
    - php: 7.3
    - php: 7.4
    - php: nightly
before_script:
  - php --version
  - mkdir -p $(dirname ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini)
  - touch ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - echo "php-config -> orig"
  - cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - echo "extension = apcu.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - echo "apc.enable_cli = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - echo "php-config -> new"
  - cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - travis_retry wget https://scrutinizer-ci.com/ocular.phar
  - travis_retry composer self-update
  - travis_retry composer require satooshi/php-coveralls:1.0.0
  - travis_retry composer require predis/predis
  - if [ "$(phpenv version-name)" == 7.3 ]; then travis_retry composer require phpstan/phpstan; fi
  - if [ "$(phpenv version-name)" == 7.3 ]; then travis_retry composer require symfony/var-exporter; fi
  - travis_retry composer install --no-interaction --prefer-source
  - composer dump-autoload -o
script:
  - mkdir -p build/logs
  - php vendor/bin/phpunit -c phpunit.xml
  - if [ "$(phpenv version-name)" == 7.3 ]; then vendor/bin/phpstan analyse; fi
after_script:
  - php vendor/bin/coveralls -v
  - php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml
  - bash <(curl -s https://codecov.io/bash)
 
  |