language: php services: - mongodb cache: directories: - "$HOME/.composer/cache" - "$HOME/.npm" env: global: - DRIVER_VERSION="stable" - ADAPTER_VERSION="^1.0.0" - APPLICATION_ENV=development - TRAVIS_NODE_VERSION="8" - COMPOSER_FLAGS="--prefer-dist --no-interaction" matrix: fast_finish: true include: - php: '5.6' env: COVERAGE=yes - php: '5.6' - php: '7.0' - php: '7.1' - php: '7.2' before_install: - node --version # remove xdebug when not collecting code coverage - if [[ $COVERAGE != yes ]]; then phpenv config-rm xdebug.ini; fi; - pecl channel-update pecl.php.net before_script: # add composer's global bin directory to the path - export PATH="$HOME/.composer/vendor/bin:$PATH" # copy default app config - mkdir -p config/autoload - mkdir -p build/behat - mkdir -p build/mails - cp .travis/autoload/*.* config/autoload # install Mongo extension - phpenv config-add .travis/phpenv.ini - pecl install -f mongodb-${DRIVER_VERSION} - 'if [[ ${TRAVIS_PHP_VERSION:0:2} == "7." ]]; then composer require "alcaeus/mongo-php-adapter=${ADAPTER_VERSION}" --prefer-dist --no-interaction --ignore-platform-reqs; fi' - composer install $COMPOSER_FLAGS # setup display, behat, and selenium - ./bin/start-selenium.sh > /dev/null 2>&1 & - sleep 5 - cd public - php -S localhost:8000 index.php > /dev/null 2>&1 & - sleep 3 - cd $TRAVIS_BUILD_DIR script: - 'if [[ $COVERAGE = yes ]]; then ./vendor/bin/phpunit -c test --verbose --coverage-clover=build/logs/clover.xml --coverage-php=build/logs/clover.serialized; else ./vendor/bin/phpunit -c test --verbose; fi' # only run behat tests when not collecting coverage - if [[ $COVERAGE != yes ]]; then ./vendor/bin/behat --strict --no-interaction; fi after_failure: - cd $TRAVIS_BUILD_DIR - "./vendor/lakion/mink-debug-extension/travis/tools/upload-textfiles \"build/behat/*.log\"" - "./vendor/lakion/mink-debug-extension/travis/tools/upload-textfiles \"log/*.log\"" - "./vendor/lakion/mink-debug-extension/travis/tools/upload-textfiles \"log/tracy/*.*\"" - "IMGUR_CLIENT_ID=bec050c54e1bb52 ./bin/imgur-uploader.sh build/behat/*.png" after_script: # process coverage - 'if [[ $COVERAGE = yes ]]; then composer require satooshi/php-coveralls ^1.0; php vendor/bin/coveralls -vvv; wget https://scrutinizer-ci.com/ocular.phar; php ocular.phar code-coverage:upload --format=php-clover test/build/logs/clover.serialized; fi'