diff --git a/.travis.yml b/.travis.yml index 1dddbd73..3c0ccebe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,32 +3,63 @@ sudo: false matrix: include: - # Use the newer stack for HHVM as HHVM does not support Precise anymore - - php: hhvm-nightly + - php: hhvm sudo: required - dist: trusty - group: edge + services: + - docker - php: 5.4 env: lowest=1 - php: 5.5 - php: 5.6 - php: 7.0 - - php: 7.1.0 + - php: 7.1 + - php: 7.2 cache: directories: - $HOME/.cache/composer/files install: - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then phpenv config-rm xdebug.ini; fi;' # Xdebug makes tests *really* slow - - if [ "$lowest" = "1" ]; then composer update --prefer-lowest --prefer-stable; else composer install; fi; + - | + if [ "$TRAVIS_PHP_VERSION" = "hhvm" ]; then + docker pull hhvm/hhvm:latest; + docker run hhvm/hhvm:latest hhvm --version; + docker run --name hhvmapt hhvm/hhvm:latest bash -c "apt update -y; apt install -y dialog apt-utils wget curl git"; + docker commit hhvmapt dvdoug/hhvm:apt; + docker run --name hhvmcomposer dvdoug/hhvm:apt bash -c "/usr/bin/curl https://getcomposer.org/installer | hhvm -d hhvm.php7.all=1 --php -- /dev/stdin --install-dir=/usr/local/bin --filename=composer"; + docker commit hhvmcomposer dvdoug/hhvm:composer; + else + phpenv config-rm xdebug.ini || true; + fi; + + - | + if [ "$TRAVIS_PHP_VERSION" = "hhvm" ]; then + docker run -v $(pwd):/var/source dvdoug/hhvm:composer hhvm -d hhvm.php7.all=1 /usr/local/bin/composer update --working-dir /var/source; + elif [ "$lowest" = "1" ]; then + composer update --prefer-lowest --prefer-stable; + else + composer update; + fi; before_script: - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ] && [ "$TRAVIS_PHP_VERSION" != "5.4" ] && [ "$TRAVIS_PHP_VERSION" != "5.5" ] && [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then echo "memory_limit = 3072M" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;' # phpdbg is RAM hungry + - | + if [ "$TRAVIS_PHP_VERSION" != "hhvm" ] && [ "$TRAVIS_PHP_VERSION" != "5.4" ] && [ "$TRAVIS_PHP_VERSION" != "5.5" ] && [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then + echo "memory_limit = 3072M" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; + fi; script: - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ] && [ "$TRAVIS_PHP_VERSION" != "5.4" ] && [ "$TRAVIS_PHP_VERSION" != "5.5" ] && [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then phpdbg -qrr vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover tests; else php vendor/bin/phpunit; fi;' + - | + if [ "$TRAVIS_PHP_VERSION" = "hhvm" ]; then + docker run -v $(pwd):/var/source dvdoug/hhvm:composer hhvm -d hhvm.php7.all=1 /var/source/vendor/bin/phpunit /var/source/tests; + elif [ "$TRAVIS_PHP_VERSION" = "7.1" ]; then + phpdbg -qrr vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover tests; + else + php vendor/bin/phpunit; + fi; after_script: - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ] && [ "$TRAVIS_PHP_VERSION" != "5.4" ] && [ "$TRAVIS_PHP_VERSION" != "5.5" ] && [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then wget https://scrutinizer-ci.com/ocular.phar; fi;' - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ] && [ "$TRAVIS_PHP_VERSION" != "5.4" ] && [ "$TRAVIS_PHP_VERSION" != "5.5" ] && [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi;' + - | + if [ "$TRAVIS_PHP_VERSION" = "7.1" ]; then + wget https://scrutinizer-ci.com/ocular.phar; + php ocular.phar code-coverage:upload --format=php-clover coverage.clover; + fi;