810c1e9e4f
* 2.8: [travis] Use hhvm-stable instead of discontinued hhvm-3.12 bumped Symfony version to 2.8.13 updated VERSION for 2.8.12 updated CHANGELOG for 2.8.12 bumped Symfony version to 2.7.20 updated VERSION for 2.7.19 update CONTRIBUTORS for 2.7.19 updated CHANGELOG for 2.7.19
100 lines
6.7 KiB
YAML
100 lines
6.7 KiB
YAML
language: php
|
|
|
|
sudo: false
|
|
|
|
git:
|
|
depth: 1
|
|
|
|
addons:
|
|
apt_packages:
|
|
- parallel
|
|
- language-pack-fr-base
|
|
- ldap-utils
|
|
- slapd
|
|
|
|
env:
|
|
global:
|
|
- MIN_PHP=5.5.9
|
|
- SYMFONY_PROCESS_PHP_TEST_BINARY=~/.phpenv/versions/5.6/bin/php
|
|
|
|
matrix:
|
|
include:
|
|
# Use the newer stack for HHVM as HHVM does not support Precise anymore since a long time and so Precise has an outdated version
|
|
- php: hhvm-stable
|
|
sudo: required
|
|
dist: trusty
|
|
group: edge
|
|
- php: 5.5
|
|
- php: 5.6
|
|
- php: 7.0
|
|
env: deps=high
|
|
- php: 7.0
|
|
env: deps=low
|
|
fast_finish: true
|
|
|
|
cache:
|
|
directories:
|
|
- .phpunit
|
|
- php-$MIN_PHP
|
|
|
|
services:
|
|
- mongodb
|
|
- redis-server
|
|
|
|
before_install:
|
|
- stty cols 120
|
|
- mkdir /tmp/slapd
|
|
- slapd -f src/Symfony/Component/Ldap/Tests/Fixtures/conf/slapd.conf -h ldap://localhost:3389 &
|
|
- PHP=$TRAVIS_PHP_VERSION
|
|
# Matrix lines for intermediate PHP versions are skipped for pull requests
|
|
- if [[ ! $deps && ! $PHP = ${MIN_PHP%.*} && ! $PHP = hhvm* && $TRAVIS_PULL_REQUEST != false ]]; then deps=skip; skip=1; fi
|
|
# A sigchild-enabled-PHP is used to test the Process component on the lowest PHP matrix line
|
|
- if [[ ! $deps && $PHP = ${MIN_PHP%.*} && ! -d php-$MIN_PHP/sapi ]]; then wget http://museum.php.net/php5/php-$MIN_PHP.tar.bz2 -O - | tar -xj; (cd php-$MIN_PHP; ./configure --enable-sigchild --enable-pcntl; make -j2); fi
|
|
- if [[ ! $PHP = hhvm* ]]; then INI_FILE=~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; else INI_FILE=/etc/hhvm/php.ini; fi
|
|
- if [[ ! $skip ]]; then echo memory_limit = -1 >> $INI_FILE; fi
|
|
- if [[ ! $skip ]]; then echo session.gc_probability = 0 >> $INI_FILE; fi
|
|
- if [[ ! $skip && $PHP = 5.* ]]; then echo extension = mongo.so >> $INI_FILE; fi
|
|
- if [[ ! $skip && $PHP = 5.* ]]; then echo extension = memcache.so >> $INI_FILE; fi
|
|
- if [[ ! $skip && $PHP = 5.* ]]; then (echo yes | pecl install -f apcu-4.0.11 && echo apc.enable_cli = 1 >> $INI_FILE); fi
|
|
- if [[ ! $skip && $PHP = 7.0 ]]; then (echo yes | pecl install -f apcu-5.1.5 && echo apc.enable_cli = 1 >> $INI_FILE); fi
|
|
- if [[ ! $deps && $PHP = 5.* ]]; then (cd src/Symfony/Component/Debug/Resources/ext && phpize && ./configure && make && echo extension = $(pwd)/modules/symfony_debug.so >> $INI_FILE); fi
|
|
- if [[ ! $skip && $PHP = 5.* ]]; then pecl install -f memcached-2.1.0; fi
|
|
- if [[ ! $skip && ! $PHP = hhvm* ]]; then echo extension = ldap.so >> $INI_FILE; fi
|
|
- if [[ ! $skip && ! $PHP = hhvm* ]]; then echo extension = redis.so >> $INI_FILE; fi;
|
|
- if [[ ! $skip && ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini || echo "xdebug not available"; fi
|
|
- if [[ ! $skip ]]; then [ -d ~/.composer ] || mkdir ~/.composer; cp .composer/* ~/.composer/; fi
|
|
- if [[ ! $skip ]]; then export PHPUNIT=$(readlink -f ./phpunit); fi
|
|
- if [[ ! $skip ]]; then ldapadd -h localhost:3389 -D cn=admin,dc=symfony,dc=com -w symfony -f src/Symfony/Component/Ldap/Tests/Fixtures/data/base.ldif; fi
|
|
- if [[ ! $skip ]]; then ldapadd -h localhost:3389 -D cn=admin,dc=symfony,dc=com -w symfony -f src/Symfony/Component/Ldap/Tests/Fixtures/data/fixtures.ldif; fi
|
|
|
|
install:
|
|
- if [[ ! $skip && $deps ]]; then cp composer.json composer.json.orig; fi
|
|
- if [[ ! $skip && $deps ]]; then echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json; fi
|
|
- if [[ ! $skip ]]; then COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n'); fi
|
|
# Create local composer packages for each patched components and reference them in composer.json files when cross-testing components
|
|
- if [[ ! $skip && $deps ]]; then php .github/build-packages.php HEAD^ $COMPONENTS; fi
|
|
- if [[ ! $skip && $deps ]]; then mv composer.json composer.json.phpunit; mv composer.json.orig composer.json; fi
|
|
- if [[ ! $skip && ! $deps ]]; then php .github/build-packages.php HEAD^ src/Symfony/Bridge/PhpUnit; fi
|
|
# For the master branch when deps=high, the version before master is checked out and tested with the locally patched components
|
|
- if [[ $deps = high && $TRAVIS_BRANCH = master ]]; then SYMFONY_VERSION=$(git ls-remote --heads | grep -o '/[1-9].*' | tail -n 1 | sed s/.//); else SYMFONY_VERSION=$(cat composer.json | grep '^ *"dev-master". *"[1-9]' | grep -o '[0-9.]*'); fi
|
|
- if [[ $deps = high && $TRAVIS_BRANCH = master ]]; then git fetch origin $SYMFONY_VERSION; git checkout -m FETCH_HEAD; COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n'); fi
|
|
# Legacy tests are skipped when deps=high and when the current branch version has not the same major version number than the next one
|
|
- if [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git show $(git ls-remote --heads | grep -FA1 /$SYMFONY_VERSION | tail -n 1):composer.json | grep '^ *"dev-master". *"[1-9]' | grep -o '[0-9]*' | head -n 1) ]]; then LEGACY=,legacy; fi
|
|
- export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev
|
|
- if [[ ! $skip && $deps ]]; then export SYMFONY_DEPRECATIONS_HELPER=weak; fi
|
|
- if [[ ! $skip && $deps ]]; then mv composer.json.phpunit composer.json; fi
|
|
- if [[ ! $skip ]]; then composer update; fi
|
|
- if [[ ! $skip ]]; then COMPOSER_ROOT_VERSION= ./phpunit install; fi
|
|
- if [[ ! $skip && ! $PHP = hhvm* ]]; then php -i; else hhvm --php -r 'print_r($_SERVER);print_r(ini_get_all());'; fi
|
|
|
|
script:
|
|
- if [[ $skip ]]; then echo -e "\\n\\e[1;34mIntermediate PHP version $PHP is skipped for pull requests.\\e[0m"; fi
|
|
- if [[ ! $deps && ! $PHP = hhvm* ]]; then echo "$COMPONENTS" | parallel --gnu '$PHPUNIT --exclude-group tty,benchmark,intl-data {}'; fi
|
|
- if [[ ! $deps && ! $PHP = hhvm* ]]; then echo -e "\\nRunning tests requiring tty"; $PHPUNIT --group tty; fi
|
|
- if [[ ! $deps && $PHP = hhvm* ]]; then $PHPUNIT --exclude-group benchmark,intl-data; fi
|
|
- if [[ ! $deps && $PHP = ${MIN_PHP%.*} ]]; then echo -e "1\\n0" | xargs -I{} sh -c 'echo "\\nPHP --enable-sigchild enhanced={}" && ENHANCE_SIGCHLD={} php-$MIN_PHP/sapi/cli/php .phpunit/phpunit-4.8/phpunit --colors=always src/Symfony/Component/Process/'; fi
|
|
- if [[ $deps = high ]]; then echo "$COMPONENTS" | parallel --gnu -j10% 'cd {}; composer update --no-progress --ansi; $PHPUNIT --exclude-group tty,benchmark,intl-data'$LEGACY; fi
|
|
- if [[ $deps = low ]]; then echo "$COMPONENTS" | parallel --gnu -j10% 'cd {}; composer update --no-progress --ansi --prefer-lowest --prefer-stable; $PHPUNIT --exclude-group tty,benchmark,intl-data'; fi
|
|
# Test the PhpUnit bridge using the original phpunit script
|
|
- if [[ $deps = low ]]; then (cd src/Symfony/Bridge/PhpUnit && phpenv global 5.3 && php --version && composer update && phpunit); fi
|