@
8000
@ -45,17 +45,19 @@ services:
45
45
before_install :
46
46
- |
47
47
# General configuration
48
+ set -e
48
49
stty cols 120
49
50
mkdir /tmp/slapd
50
51
slapd -f src/Symfony/Component/Ldap/Tests/Fixtures/conf/slapd.conf -h ldap://localhost:3389 &
51
- PHP=$TRAVIS_PHP_VERSION
52
52
[ -d ~/.composer ] || mkdir ~/.composer
53
53
cp .composer/* ~/.composer/
54
54
export PHPUNIT=$(readlink -f ./phpunit)
55
55
export PHPUNIT_X="$PHPUNIT --exclude-group tty,benchmark,intl-data"
56
56
export COMPOSER_UP='composer update --no-progress --no-suggest --ansi'
57
+ export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
58
+ find ~/.phpenv -name xdebug.ini -delete
57
59
58
- nanoseconds() {
60
+ nanoseconds () {
59
61
local cmd="date"
60
62
local format="+%s%N"
61
63
local os=$(uname)
@@ -70,7 +72,7 @@ before_install:
70
72
71
73
# tfold is a helper to create folded reports
72
74
tfold () {
73
- local title=$1
75
+ local title="🐘 $PHP $1"
74
76
local fold=$(echo $title | sed -r 's/[^-_A-Za-z0-9]+/./g')
75
77
shift
76
78
local id=$(printf %08x $(( RANDOM * RANDOM )))
@@ -90,17 +92,6 @@ before_install:
90
92
}
91
93
export -f tfold
92
94
93
- # php.ini configuration
94
- INI=~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
95
- phpenv config-rm xdebug.ini || echo "xdebug not available"
96
- echo date.timezone = Europe/Paris >> $INI
97
- echo memory_limit = -1 >> $INI
98
- echo session.gc_probability = 0 >> $INI
99
- echo opcache.enable_cli = 1 >> $INI
100
- echo apc.enable_cli = 1 >> $INI
101
- echo extension = redis.so >> $INI
102
- echo extension = memcached.so >> $INI
103
-
104
95
# tpecl is a helper to compile and cache php extensions
105
96
tpecl () {
106
97
local ext_name=$1
@@ -112,31 +103,42 @@ before_install:
112
103
if [[ -e $ext_cache/$ext_so ]]; then
113
104
echo extension = $ext_cache/$ext_so >> $INI
114
105
else
106
+ rm ~/.pearrc /tmp/pear 2>/dev/null || true
115
107
mkdir -p $ext_cache
116
108
echo yes | pecl install -f $ext_name &&
117
109
cp $ext_dir/$ext_so $ext_cache
118
110
fi
119
111
}
120
112
export -f tpecl
121
113
122
- # Matrix lines for intermediate PHP versions are skipped for pull requests
123
- if [[ ! $deps && ! $PHP = $MIN_PHP && $TRAVIS_PULL_REQUEST != false ]]; then
124
- deps=skip
125
- skip=1
126
- else
127
- COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
128
- fi
129
-
130
114
- |
131
115
# Install sigchild-enabled PHP to test the Process component on the lowest PHP matrix line
132
- if [[ ! $deps && $PHP = $MIN_PHP && ! -d php-$MIN_PHP/sapi ]]; then
116
+ if [[ ! $deps && $TRAVIS_PHP_VERSION = $MIN_PHP && ! -d php-$MIN_PHP/sapi ]]; then
133
117
wget http://php.net/get/php-$MIN_PHP.tar.bz2/from/this/mirror -O - | tar -xj &&
134
118
(cd php-$MIN_PHP && ./configure --enable-sigchild --enable-pcntl && make -j2)
135
119
fi
136
120
121
+ - |
122
+ # php.ini configuration
123
+ for PHP in $TRAVIS_PHP_VERSION $php_extra; do
124
+ phpenv global $PHP 2>/dev/null || (cd / && wget https://s3.amazonaws.com/travis-php-archives/binaries/ubuntu/14.04/x86_64/php-$PHP.tar.bz2 -O - | tar -xj)
125
+ INI=~/.phpenv/versions/$PHP/etc/conf.d/travis.ini
126
+ echo date.timezone = Europe/Paris >> $INI
127
+ echo memory_limit = -1 >> $INI
128
+ echo session.gc_probability = 0 >> $INI
129
+ echo opcache.enable_cli = 1 >> $INI
130
+ echo apc.enable_cli = 1 >> $INI
131
+ echo extension = redis.so >> $INI
132
+ echo extension = memcached.so >> $INI
133
+ done
134
+
137
135
- |
138
136
# Install extra PHP extensions
139
- if [[ ! $skip ]]; then
137
+ for PHP in $TRAVIS_PHP_VERSION $php_extra; do
138
+ export PHP=$PHP
139
+ phpenv global $PHP
140
+ INI=~/.phpenv/versions/$PHP/etc/conf.d/travis.ini
141
+
140
142
# Install librabbitmq
141
143
wget http://ftp.debian.org/debian/pool/main/libr/librabbitmq/librabbitmq-dev_0.5.2-2_amd64.deb
142
144
wget http://ftp.debian.org/debian/pool/main/libr/librabbitmq/librabbitmq1_0.5.2-2_amd64.deb
@@ -151,7 +153,7 @@ before_install:
151
153
tfold ext.libsodium tpecl libsodium sodium.so $INI
152
154
tfold ext.mongodb tpecl mongodb-1.5.0 mongodb.so $INI
153
155
tfold ext.amqp tpecl amqp-1.9.3 amqp.so $INI
154
- fi
156
+ done
155
157
156
158
- |
157
159
# Load fixtures
@@ -165,7 +167,7 @@ install:
165
167
# Create local composer packages for each patched components and reference them in composer.json files when cross-testing components
166
168
if [[ ! $deps ]]; then
167
169
php .github/build-packages.php HEAD^ src/Symfony/Bridge/PhpUnit
168
- elif [[ ! $skip ]]; then
170
+ else
169
171
export SYMFONY_DEPRECATIONS_HELPER=weak &&
170
172
cp composer.json composer.json.orig &&
171
173
echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json &&
@@ -181,7 +183,7 @@ install:
181
183
git fetch origin $SYMFONY_VERSION &&
182
184
git checkout -m FETCH_HEAD &&
183
185
COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
184
- elif [[ ! $skip ]]; then
186
+ else
185
187
SYMFONY_VERSION=$(cat composer.json | grep '^ *"dev-master". *"[1-9]' | grep -o '[0-9.]*')
186
188
fi
187
189
@@ -190,33 +192,36 @@ install:
190
192
[[ $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
191
193
192
194
export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev
193
- if [[ ! $skip && $deps ]]; then mv composer.json.phpunit composer.json; fi
195
+ if [[ $deps ]]; then mv composer.json.phpunit composer.json; fi
194
196
195
- if [[ ! $skip ]]; then
196
- ([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer require --dev --no-update mongodb/mongodb)
197
- fi
198
-
199
- - if [[ ! $skip ]]; then $COMPOSER_UP; fi
200
- - if [[ ! $skip ]]; then ./phpunit install; fi
201
197
- php -i
202
198
203
199
- |
204
200
run_tests () {
205
201
set -e
206
- if [[ $skip ]]; then
202
+ export PHP=$1
203
+ if [[ $PHP != $TRAVIS_PHP_VERSION && $TRAVIS_PULL_REQUEST != false ]]; then
207
204
echo -e "\\n\\e[1;34mIntermediate PHP version $PHP is skipped for pull requests.\\e[0m"
208
- elif [[ $deps = high ]]; then
205
+ break
206
+ fi
207
+ phpenv global $PHP
208
+ tfold 'composer update' $COMPOSER_UP
209
+ tfold 'phpunit install' ./phpunit install
210
+ if [[ $PHP = 7.* ]]; then
211
+ ([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer require --dev --no-update mongodb/mongodb)
212
+ fi
213
+ if [[ $deps = high ]]; then
209
214
echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP && $PHPUNIT_X$LEGACY'"
210
215
elif [[ $deps = low ]]; then
211
216
echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP --prefer-lowest --prefer-stable && $PHPUNIT_X'"
212
217
else
213
218
echo "$COMPONENTS" | parallel --gnu "tfold {} $PHPUNIT_X {}"
214
- tfold tty-group $PHPUNIT --group tty
219
+ tfold src/Symfony/Component/Console. tty $PHPUNIT src/Symfony/Component/Console --group tty
215
220
if [[ $PHP = $MIN_PHP ]]; then
216
221
tfold src/Symfony/Component/Process.sigchild SYMFONY_DEPRECATIONS_HELPER=weak php-$MIN_PHP/sapi/cli/php ./phpunit --colors=always src/Symfony/Component/Process/
217
222
fi
218
223
fi
219
224
}
220
225
221
226
script :
222
- - (run_tests)
227
+ - for PHP in $TRAVIS_PHP_VERSION $php_extra; do (run_tests $PHP); done
0 commit comments