* 3.4: (22 commits) use Precise on Travis to keep PHP LDAP support Fix case sensitive sameSite cookie [PropertyInfo] Use rawurlencode to escape PSR-6 keys fix(security): ensure the 'route' index is set before attempting to use it Fix registering lazy command services with autoconfigure enabled Fix the design of the profiler exceptions when there is no message [Config] Minor fix document the TwigRenderer class deprecation [Security] added more tests [Security] fixed default target path when referer contains a query string [Security] simplified tests [Security] refactored tests [WebProfilerBundle][TwigBundle] Fix infinite js loop on exception pages [FrameworkBundle] fix ValidatorCacheWarmer: use serializing ArrayAdapter Change "this" to "that" to avoid confusion [VarDumper] Move locale sniffing to dump() time [VarDumper] Use "C" locale when using "comma" flags [Config] Make ClassExistenceResource throw on invalid parents [DebugBundle] Added min_depth to Configuration [Console] Add a factory command loader for standalone application with lazy-loading needs ...
169 lines
6.5 KiB
YAML
169 lines
6.5 KiB
YAML
language: php
|
|
|
|
dist: precise
|
|
sudo: false
|
|
|
|
git:
|
|
depth: 1
|
|
|
|
addons:
|
|
apt_packages:
|
|
- parallel
|
|
- language-pack-fr-base
|
|
- ldap-utils
|
|
- slapd
|
|
|
|
env:
|
|
global:
|
|
- MIN_PHP=7.1.3
|
|
- SYMFONY_PROCESS_PHP_TEST_BINARY=~/.phpenv/versions/7.1/bin/php
|
|
|
|
matrix:
|
|
include:
|
|
- php: 7.1.3
|
|
- php: 7.1
|
|
env: deps=high
|
|
- php: 7.1
|
|
env: deps=low
|
|
fast_finish: true
|
|
|
|
cache:
|
|
directories:
|
|
- .phpunit
|
|
- php-$MIN_PHP
|
|
|
|
services:
|
|
- memcached
|
|
- mongodb
|
|
- redis-server
|
|
|
|
before_install:
|
|
- |
|
|
# General configuration
|
|
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
|
|
[ -d ~/.composer ] || mkdir ~/.composer
|
|
cp .composer/* ~/.composer/
|
|
export PHPUNIT=$(readlink -f ./phpunit)
|
|
export PHPUNIT_X="$PHPUNIT --exclude-group tty,benchmark,intl-data"
|
|
export COMPOSER_UP='composer update --no-progress --no-suggest --ansi'
|
|
|
|
# tfold is a helper to create folded reports
|
|
tfold () {
|
|
title=$1
|
|
fold=$(echo $title | sed -r 's/[^-_A-Za-z\d]+/./g')
|
|
shift
|
|
echo -e "travis_fold:start:$fold\\n\\e[1;34m$title\\e[0m"
|
|
bash -xc "$*" 2>&1 &&
|
|
echo -e "\\e[32mOK\\e[0m $title\\n\\ntravis_fold:end:$fold" ||
|
|
( echo -e "\\e[41mKO\\e[0m $title\\n" && exit 1 )
|
|
}
|
|
export -f tfold
|
|
|
|
# php.ini configuration
|
|
INI=~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
|
|
phpenv config-rm xdebug.ini || echo "xdebug not available"
|
|
echo date.timezone = Europe/Paris >> $INI
|
|
echo memory_limit = -1 >> $INI
|
|
echo session.gc_probability = 0 >> $INI
|
|
echo opcache.enable_cli = 1 >> $INI
|
|
echo apc.enable_cli = 1 >> $INI
|
|
echo extension = ldap.so >> $INI
|
|
echo extension = redis.so >> $INI
|
|
echo extension = memcached.so >> $INI
|
|
echo extension = mongodb.so >> $INI
|
|
|
|
# Matrix lines for intermediate PHP versions are skipped for pull requests
|
|
if [[ ! $deps && ! $PHP = $MIN_PHP && $TRAVIS_PULL_REQUEST != false ]]; then
|
|
deps=skip
|
|
skip=1
|
|
else
|
|
COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
|
|
fi
|
|
|
|
- |
|
|
# Install sigchild-enabled PHP to test the Process component on the lowest PHP matrix line
|
|
if [[ ! $deps && $PHP = $MIN_PHP && ! -d php-$MIN_PHP/sapi ]]; then
|
|
wget http://php.net/get/php-$MIN_PHP.tar.bz2/from/this/mirror -O - | tar -xj &&
|
|
(cd php-$MIN_PHP && ./configure --enable-sigchild --enable-pcntl && make -j2)
|
|
fi
|
|
|
|
- |
|
|
# Install extra PHP extensions
|
|
if [[ ! $skip && $PHP = 7.* ]]; then
|
|
tfold ext.apcu5 'echo yes | pecl install -f apcu-5.1.6'
|
|
fi
|
|
|
|
- |
|
|
# Load fixtures
|
|
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 &&
|
|
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:
|
|
- |
|
|
# Create local composer packages for each patched components and reference them in composer.json files when cross-testing components
|
|
if [[ ! $deps ]]; then
|
|
php .github/build-packages.php HEAD^ src/Symfony/Bridge/PhpUnit
|
|
elif [[ ! $skip ]]; then
|
|
export SYMFONY_DEPRECATIONS_HELPER=weak &&
|
|
cp composer.json composer.json.orig &&
|
|
echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json &&
|
|
php .github/build-packages.php HEAD^ $COMPONENTS &&
|
|
mv composer.json composer.json.phpunit &&
|
|
mv composer.json.orig composer.json
|
|
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/.//) &&
|
|
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')
|
|
elif [[ ! $skip ]]; then
|
|
SYMFONY_VERSION=$(cat composer.json | grep '^ *"dev-master". *"[1-9]' | grep -o '[0-9.]*')
|
|
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
|
|
[[ $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) ]] && LEGACY=,legacy
|
|
|
|
export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev
|
|
if [[ ! $skip && $deps ]]; then mv composer.json.phpunit composer.json; fi
|
|
|
|
if [[ ! $skip ]]; then
|
|
([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer require --dev --no-update mongodb/mongodb)
|
|
fi
|
|
|
|
- if [[ ! $skip ]]; then $COMPOSER_UP; fi
|
|
- if [[ ! $skip ]]; then ./phpunit install; fi
|
|
- php -i
|
|
|
|
- |
|
|
run_tests () {
|
|
set -e
|
|
if [[ $skip ]]; then
|
|
echo -e "\\n\\e[1;34mIntermediate PHP version $PHP is skipped for pull requests.\\e[0m"
|
|
elif [[ $deps = high ]]; then
|
|
echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP && $PHPUNIT_X$LEGACY'"
|
|
elif [[ $deps = low ]]; then
|
|
echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP --prefer-lowest --prefer-stable && $PHPUNIT_X'" &&
|
|
# Test the PhpUnit bridge on PHP 5.3, using the original phpunit script
|
|
tfold src/Symfony/Bridge/PhpUnit \
|
|
"cd src/Symfony/Bridge/PhpUnit && wget https://phar.phpunit.de/phpunit-4.8.phar && phpenv global 5.3 && composer update --no-progress --ansi && php phpunit-4.8.phar"
|
|
else
|
|
echo "$COMPONENTS" | parallel --gnu "tfold {} $PHPUNIT_X {}"
|
|
tfold tty-group $PHPUNIT --group tty
|
|
if [[ $PHP = $MIN_PHP ]]; then
|
|
tfold src/Symfony/Component/Process.sigchild SYMFONY_DEPRECATIONS_HELPER=weak php-$MIN_PHP/sapi/cli/php ./phpunit --colors=always src/Symfony/Component/Process/
|
|
fi
|
|
fi
|
|
}
|
|
|
|
script:
|
|
- (run_tests)
|