@@ -13,7 +13,7 @@ addons:
13
13
14
14
env :
15
15
global :
16
- - MIN_PHP=5.4 .9
16
+ - MIN_PHP=5.7 .9
17
17
- SYMFONY_PROCESS_PHP_TEST_BINARY=~/.phpenv/versions/5.6/bin/php
18
18
19
19
matrix :
@@ -22,9 +22,7 @@ matrix:
22
22
sudo : required
23
23
group : edge
24
24
- php : 5.4
25
- - php : 5.5
26
- - php : 5.6
27
- - php : 7.0
25
+ env : php_extra="5.5 5.6 7.0"
28
26
- php : 7.1
29
27
env : deps=high
30
28
- php : 7.2
@@ -43,19 +41,22 @@ before_install:
43
41
- |
44
42
# General configuration
45
43
stty cols 120
46
- PHP=$TRAVIS_PHP_VERSION
47
44
[ -d ~/.composer ] || mkdir ~/.composer
48
45
cp .composer/* ~/.composer/
49
46
export PHPUNIT=$(readlink -f ./phpunit)
50
47
export PHPUNIT_X="$PHPUNIT --exclude-group tty,benchmark,intl-data"
51
48
export COMPOSER_UP='composer update --no-progress --no-suggest --ansi'
49
+ export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
50
+ export COMPONENTS='src/Symfony/Component/Process'
51
+ find ~/.phpenv -name xdebug.ini -delete
52
52
53
- if [[ $PHP = 5.* ]]; then
53
+ if [[ $TRAVIS_PHP_VERSION = 5.* || $TRAVIS_PHP_VERSION = hhvm * ]]; then
54
54
composer () {
55
- $HOME/.phpenv/versions/$TRAVIS_PHP_VERSION /bin/composer config platform.php $TRAVIS_PHP_VERSION
56
- $HOME/.phpenv/versions/7.1/bin/php $HOME/.phpenv/versions/$TRAVIS_PHP_VERSION /bin/composer $*
55
+ $HOME/.phpenv/versions/7.1 /bin/composer config platform.php $(echo ' <?php echo preg_replace("/-.*/", "", PHP_VERSION);' | php /dev/stdin)
56
+ $HOME/.phpenv/versions/7.1/bin/php $HOME/.phpenv/versions/7.1 /bin/composer $*
57
57
}
58
58
export -f composer
59
+ ~/.phpenv/versions/7.1/bin/composer self-update
59
60
fi
60
61
61
62
nanoseconds () {
@@ -93,24 +94,6 @@ before_install:
93
94
}
94
95
export -f tfold
95
96
96
- # php.ini configuration
97
- if [[ $PHP = hhvm* ]]; then
98
- INI=/etc/hhvm/php.ini
99
- else
100
- INI=~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
101
- find ~/.phpenv -name xdebug.ini -delete
102
- fi
103
- echo date.timezone = Europe/Paris >> $INI
104
- echo memory_limit = -1 >> $INI
105
- echo session.gc_probability = 0 >> $INI
106
- echo opcache.enable_cli = 1 >> $INI
107
- echo hhvm.jit = 0 >> $INI
108
- echo apc.enable_cli = 1 >> $INI
109
- [[ $PHP = 5.* ]] && echo extension = memcache.so >> $INI
110
- if [[ $PHP = 5.* ]]; then
111
- echo extension = mongo.so >> $INI
112
- fi
113
-
114
97
# tpecl is a helper to compile and cache php extensions
115
98
tpecl () {
116
99
local ext_name=$1
@@ -129,38 +112,62 @@ before_install:
129
112
}
130
113
export -f tpecl
131
114
132
- # Matrix lines for intermediate PHP versions are skipped for pull requests
133
- if [[ ! $deps && ! $PHP = ${MIN_PHP%.*} && ! $PHP = hhvm* && $TRAVIS_PULL_REQUEST != false ]]; then
134
- deps=skip
135
- skip=1
136
- else
137
- COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
138
- fi
139
-
140
115
- |
141
116
# Install sigchild-enabled PHP to test the Process component on the lowest PHP matrix line
142
- if [[ ! $deps && $PHP = ${MIN_PHP%.*} && ! -d php-$MIN_PHP/sapi ]]; then
117
+ if [[ ! $deps && $TRAVIS_PHP_VERSION = ${MIN_PHP%.*} && ! -d php-$MIN_PHP/sapi ]]; then
143
118
wget http://museum.php.net/php5/php-$MIN_PHP.tar.bz2 -O - | tar -xj &&
144
119
(cd php-$MIN_PHP && ./configure --enable-sigchild --enable-pcntl && make -j2)
145
120
fi
146
121
122
+ - |
123
+ # php.ini configuration
124
+ set -e
125
+ for PHP in $TRAVIS_PHP_VERSION $php_extra; do
126
+ if [[ $PHP = hhvm* ]]; then
127
+ INI=/etc/hhvm/php.ini
128
+ else
129
+ 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)
130
+ INI=~/.phpenv/versions/$PHP/etc/conf.d/travis.ini
131
+ fi
132
+ echo date.timezone = Europe/Paris >> $INI
133
+ echo memory_limit = -1 >> $INI
134
+ echo session.gc_probability = 0 >> $INI
135
+ echo opcache.enable_cli = 1 >> $INI
136
+ echo hhvm.jit = 0 >> $INI
137
+ echo apc.enable_cli = 1 >> $INI
138
+ [[ $PHP = 5.* ]] && echo extension = memcache.so >> $INI
139
+ if [[ $PHP = 5.* ]]; then
140
+ echo extension = mongo.so >> $INI
141
+ fi
142
+ done
143
+
147
144
- |
148
145
# Install extra PHP extensions
149
- if [[ ! $skip && $PHP = 5.* ]]; then
150
- ([[ $deps ]] || tfold ext.symfony_debug 'cd src/Symfony/Component/Debug/Resources/ext && phpize && ./configure && make && echo extension = $(pwd)/modules/symfony_debug.so >> '"$INI")
151
- tfold ext.memcached tpecl memcached-2.1.0 memcached.so $INI
152
- tfold ext.apcu tpecl apcu-4.0.11 apcu.so $INI
153
- elif [[ ! $skip && $PHP = 7.* ]]; then
154
- tfold ext.apcu tpecl apcu-5.1.6 apcu.so $INI
155
- tfold ext.mongodb tpecl mongodb-1.5.0 mongodb.so $INI
156
- fi
146
+ set -e
147
+ for PHP in $TRAVIS_PHP_VERSION $php_extra; do
148
+ if [[ $PHP = hhvm* ]]; then
149
+ continue
150
+ fi
151
+ phpenv global $PHP
152
+ INI=~/.phpenv/versions/$PHP/etc/conf.d/travis.ini
153
+ if [[ $PHP = 5.* ]]; then
154
+ ([[ $deps ]] || tfold "π $PHP symfony_debug" 'cd src/Symfony/Component/Debug/Resources/ext && phpize && ./configure && make && mv modules/symfony_debug.so '$(php -r "echo ini_get('extension_dir');")' && phpize --clean && echo extension = symfony_debug.so >>' $INI)
155
+ tfold "π $PHP memcached" tpecl memcached-2.1.0 memcached.so $INI
156
+ tfold "π $PHP apcu" tpecl apcu-4.0.11 apcu.so $INI
157
+ elif [[ $PHP = 7.* ]]; then
158
+ ls -l /home/travis/.phpenv/shims
159
+ ls -l /home/travis/.phpenv/bin
160
+ tfold "π $PHP apcu" tpecl apcu-5.1.6 apcu.so $INI
161
+ tfold "π $PHP mongodb" tpecl mongodb-1.5.0 mongodb.so $INI
162
+ fi
163
+ done
157
164
158
165
install :
159
166
- |
160
167
# Create local composer packages for each patched components and reference them in composer.json files when cross-testing components
161
168
if [[ ! $deps ]]; then
162
169
php .github/build-packages.php HEAD^ src/Symfony/Bridge/PhpUnit
163
- elif [[ ! $skip ]]; then
170
+ else
164
171
export SYMFONY_DEPRECATIONS_HELPER=weak &&
165
172
cp composer.json composer.json.orig &&
166
173
echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json &&
@@ -176,7 +183,7 @@ install:
176
183
git fetch origin $SYMFONY_VERSION &&
177
184
git checkout -m FETCH_HEAD &&
178
185
COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
179
- elif [[ ! $skip ]]; then
186
+ else
180
187
SYMFONY_VERSION=$(cat composer.json | grep '^ *"dev-master". *"[1-9]' | grep -o '[0-9.]*')
181
188
fi
182
189
@@ -185,37 +192,40 @@ install:
185
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
186
193
187
194
export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev
188
- if [[ ! $skip && $deps ]]; then mv composer.json.phpunit composer.json; fi
195
+ if [[ $deps ]]; then mv composer.json.phpunit composer.json; fi
189
196
190
- if [[ ! $skip && $PHP = 7.* ]]; then
191
- ([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer require --dev --no-update mongodb/mongodb)
192
- fi
193
-
194
- - if [[ ! $skip ]]; then $COMPOSER_UP; fi
195
- - if [[ ! $skip ]]; then ./phpunit install; fi
196
197
- |
197
198
# phpinfo
198
- if [[ ! $PHP = hhvm* ]]; then php -i; else hhvm --php -r 'print_r($_SERVER);print_r(ini_get_all());'; fi
199
+ if [[ ! $TRAVIS_PHP_VERSION = hhvm* ]]; then php -i; else hhvm --php -r 'print_r($_SERVER);print_r(ini_get_all());'; fi
199
200
200
201
- |
201
202
run_tests () {
202
- set -e
203
- if [[ $skip ]]; then
203
+ export PHP=$1
204
+ if [[ $PHP != $TRAVIS_PHP_VERSION && $TRAVIS_PULL_REQUEST != false ]]; then
204
205
echo -e "\\n\\e[1;34mIntermediate PHP version $PHP is skipped for pull requests.\\e[0m"
205
- elif [[ $deps = high ]]; then
206
- echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP && $PHPUNIT_X$LEGACY'"
206
+ continue
207
+ fi
208
+ phpenv global ${PHP/hhvm*/hhvm}
209
+ tfold "π $PHP composer update" $COMPOSER_UP
210
+ tfold "π $PHP phpunit install" ./phpunit install
211
+ if [[ $PHP = 7.* ]]; then
212
+ ([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer require --dev --no-update mongodb/mongodb)
213
+ fi
214
+ set -e
215
+ if [[ $deps = high ]]; then
216
+ echo "$COMPONENTS" | parallel --gnu -j10% "tfold 'π $PHP {}' 'cd {} && $COMPOSER_UP && $PHPUNIT_X$LEGACY'"
207
217
elif [[ $deps = low ]]; then
208
- echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP --prefer-lowest --prefer-stable && $PHPUNIT_X'"
218
+ echo "$COMPONENTS" | parallel --gnu -j10% "tfold 'π $PHP {}' 'cd {} && $COMPOSER_UP --prefer-lowest --prefer-stable && $PHPUNIT_X'"
209
219
elif [[ $PHP = hhvm* ]]; then
210
220
$PHPUNIT --exclude-group no-hhvm,benchmark,intl-data
211
221
else
212
- echo "$COMPONENTS" | parallel --gnu "tfold {} $PHPUNIT_X {}"
213
- tfold tty-group $PHPUNIT --group tty
222
+ echo "$COMPONENTS" | parallel --gnu "tfold 'π $PHP {}' $PHPUNIT_X {}"
223
+ tfold "π $PHP tty-group" $PHPUNIT --group tty
214
224
if [[ $PHP = ${MIN_PHP%.*} ]]; then
215
- echo -e "1\\n0" | xargs -I{} bash -c "tfold src/Symfony/Component/Process.sigchild{} ENHANCE_SIGCHLD={} php-$MIN_PHP/sapi/cli/php .phpunit/phpunit-4.8/phpunit --colors=always src/Symfony/Component/Process/"
225
+ echo -e "1\\n0" | xargs -I{} bash -c "tfold 'π $MIN_PHP src/Symfony/Component/Process.sigchild{}' ENHANCE_SIGCHLD={} php-$MIN_PHP/sapi/cli/php .phpunit/phpunit-4.8/phpunit --colors=always src/Symfony/Component/Process/"
216
226
fi
217
227
fi
218
228
}
219
229
220
230
script :
221
- - (run_tests)
231
+ - set -e && for PHP in $TRAVIS_PHP_VERSION $php_extra; do (run_tests $PHP); done
0 commit comments