1+ language : php
2+
3+ dist : trusty
4+ sudo : false
5+
6+ git :
7+ depth : 1
8+
9+ addons :
10+ apt_packages :
11+ - parallel
12+
13+ matrix :
14+ include :
15+ - php : 7.1.3
16+ - php : 7.1
17+ env : deps=high
18+ - php : 7.2
19+ fast_finish : true
20+
21+ before_install :
22+ - |
23+ # General configuration
24+ stty cols 120
25+ export COMPOSER_UP='composer update --no-progress --no-suggest --ansi'
26+ export ATOUM='vendor/bin/atoum -ulr'
27+ nanoseconds() {
28+ local cmd="date"
29+ local format="+%s%N"
30+ local os=$(uname)
31+ if hash gdate > /dev/null 2>&1; then
32+ cmd="gdate"
33+ elif [[ "$os" = Darwin ]]; then
34+ format="+%s000000000"
35+ fi
36+ $cmd -u $format
37+ }
38+ export -f nanoseconds
39+ # tfold is a helper to create folded reports
40+ tfold () {
41+ local title=$1
42+ local fold=$(echo $title | sed -r 's/[^-_A-Za-z0-9]+/./g')
43+ shift
44+ local id=$(printf %08x $(( RANDOM * RANDOM )))
45+ local start=$(nanoseconds)
46+ echo -e "travis_fold:start:$fold"
47+ echo -e "travis_time:start:$id"
48+ echo -e "\\e[1;34m$title\\e[0m"
49+ bash -xc "$*" 2>&1
50+ local ok=$?
51+ local end=$(nanoseconds)
52+ echo -e "\\ntravis_time:end:$id:start=$start,finish=$end,duration=$(($end-$start))"
53+ (exit $ok) &&
54+ echo -e "\\e[32mOK\\e[0m $title\\n\\ntravis_fold:end:$fold" ||
55+ echo -e "\\e[41mKO\\e[0m $title\\n"
56+ (exit $ok)
57+ }
58+ export -f tfold
59+
60+ # php.ini configuration
61+ INI=~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
62+ phpenv config-rm xdebug.ini || echo "xdebug not available"
63+ echo date.timezone = Europe/Paris >> $INI
64+ echo memory_limit = -1 >> $INI
65+ echo session.gc_probability = 0 >> $INI
66+ echo opcache.enable_cli = 1 >> $INI
67+ - composer global require hirak/prestissimo
68+ - COMPONENTS=$(find src -mindepth 3 -maxdepth 3 -type f -name .atoum.php -printf '%h\n')
69+
70+ install :
71+ - |
72+ run_tests () {
73+ set -e
74+ if [[ $deps = high ]]; then
75+ echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP && $ATOUM'"
76+ elif [[ $deps = low ]]; then
77+ echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP --prefer-lowest --prefer-stable && $ATOUM'"
78+ else
79+ echo "$COMPONENTS" | parallel --gnu -j10% "tfold {} 'cd {} && $COMPOSER_UP --prefer-stable && $ATOUM'"
80+ fi
81+ }
82+
83+ script :
84+ - (run_tests)
0 commit comments