[travis] Fix deps=high jobs

This commit is contained in:
Nicolas Grekas 2015-07-21 15:40:18 +02:00
parent 510b2d2de6
commit 1c9b43396f
6 changed files with 56 additions and 35 deletions

11
.gitignore vendored
View File

@ -1,8 +1,7 @@
.php_cs.cache
autoload.php
vendor/
composer.lock
composer.phar
package*.tar
packages.json
phpunit.xml
/vendor/
.php_cs.cache
composer.phar
package.tar
/packages.json

45
.travis.php Normal file
View File

@ -0,0 +1,45 @@
<?php
if (4 > $_SERVER['argc']) {
echo "Usage: commit-range branch dir1 dir2 ... dirN\n";
exit(1);
}
$dirs = $_SERVER['argv'];
array_shift($dirs);
$range = array_shift($dirs);
$branch = array_shift($dirs);
$packages = array();
$flags = PHP_VERSION_ID >= 50400 ? JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE : 0;
foreach ($dirs as $dir) {
if (!`git diff --name-only $range -- $dir`) {
continue;
}
echo "$dir\n";
$package = json_decode(file_get_contents($dir.'/composer.json'));
$package->repositories = array(array(
'type' => 'composer',
'url' => 'file://'.__DIR__.'/',
));
file_put_contents($dir.'/composer.json', json_encode($package, $flags));
passthru("cd $dir && tar -cf package.tar --exclude='package.tar' *");
$package->version = $branch.'.x-dev';
$package->dist['type'] = 'tar';
$package->dist['url'] = 'file://'.__DIR__."/$dir/package.tar";
$packages[$package->name][$package->version] = $package;
$versions = file_get_contents('https://packagist.org/packages/'.$package->name.'.json');
$versions = json_decode($versions);
foreach ($versions->package->versions as $version => $package) {
$packages[$package->name] += array($version => $package);
}
}
file_put_contents('packages.json', json_encode(compact('packages'), $flags));

View File

@ -1,24 +0,0 @@
branch=$1
if [ -z "$branch" ]; then
echo 'Usage: branch dir1 dir2 ... dirN'
exit 1
fi
shift
components=$*
if [ -z "$components" ]; then
echo 'Usage: branch dir1 dir2 ... dirN'
exit 1
fi
echo '{"packages": {' > packages.json
for c in $components; do
sed -i ':a;N;$!ba;s#^{\n\(\s*\)\("name"\)#{\n\1"repositories": \[{ "type": "composer", "url": "file://'$(pwd)'/" }\],\n\1\2#' $c/composer.json
n=$(php -r '$n=json_decode(file_get_contents("'$c'/composer.json"));echo $n->name;')
echo '"'$n'": {"'$branch'.x-dev": ' >> packages.json
cat $c/composer.json >> packages.json
echo '"version": "'$branch.x-dev'",\n "dist": {"type": "tar", "url": "file://'$(pwd)/$c'/package'$branch'.tar"}\n}},' >> packages.json
done;
sed -i ':a;N;$!ba;s/\n}\n"/,\n "/g' packages.json
sed -i ':a;N;$!ba;s/}},$/\n}}\n}}/' packages.json
for c in $components; do
(cd $c && tar -cf package$branch.tar --exclude='package*.tar' *)
done

View File

@ -33,6 +33,7 @@ env:
before_install:
- composer self-update
- if [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then echo "memory_limit = -1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
- if [[ "$TRAVIS_PHP_VERSION" != "nightly" ]] && [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then phpenv config-rm xdebug.ini; fi;
- if [[ "$TRAVIS_PHP_VERSION" != "nightly" ]] && [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
- if [[ "$TRAVIS_PHP_VERSION" != "nightly" ]] && [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]] && [ $(php -r "echo PHP_MINOR_VERSION;") -le 4 ]; then echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
@ -44,7 +45,7 @@ before_install:
install:
- if [ "$deps" = "no" ]; then composer --prefer-source install; fi;
- components=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
- if [ "$deps" != "no" ]; then sh .travis.sh $TRAVIS_BRANCH $components; fi;
- if [ "$deps" != "no" ]; then php .travis.php $TRAVIS_COMMIT_RANGE $TRAVIS_BRANCH $components; fi;
script:
- if [ "$deps" = "no" ]; then echo "$components" | parallel --gnu --keep-order 'echo -e "\\nRunning {} tests"; phpunit --exclude-group tty,benchmark,intl-data {} || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1));'; fi;

View File

@ -22,7 +22,7 @@
"require-dev": {
"symfony/phpunit-bridge": "~2.7",
"symfony/finder": "~2.3",
"symfony/form": "~2.3.5",
"symfony/form": "~2.3.31",
"symfony/http-kernel": "~2.3",
"symfony/intl": "~2.3",
"symfony/routing": "~2.2",

View File

@ -17,8 +17,8 @@
],
"require": {
"php": ">=5.3.3",
"symfony/dependency-injection" : "~2.3",
"symfony/config" : "~2.3,>=2.3.12",
"symfony/dependency-injection": "~2.3",
"symfony/config": "~2.3,>=2.3.12",
"symfony/event-dispatcher": "~2.1",
"symfony/http-foundation": "~2.3,>=2.3.19",
"symfony/http-kernel": "~2.3,>=2.3.22",
@ -38,7 +38,7 @@
"symfony/finder": "~2.0,>=2.0.5",
"symfony/intl": "~2.3",
"symfony/security": "~2.3",
"symfony/form": "~2.3.0,>=2.3.5",
"symfony/form": "~2.3.31",
"symfony/class-loader": "~2.1",
"symfony/process": "~2.0,>=2.0.5",
"symfony/validator": "~2.1",