(travis) Display TAP directives on single threaded CI runs
[dbsrgits/DBIx-Class.git] / .travis.yml
CommitLineData
d70070c9 1# Some overall notes on how this works
2#
3# * We smoke using the system provided latest, and custom built "oddball perls"
4# The reason for not having a blanket matrix is to conserve travis resources
5# as a full DBIC depchain isn't cheap
6#
7# * Minimum perl officially supported by DBIC is 5.8.3. This *includes* the
8# basic depchain. On failure either attempt to fix it or bring it to the
36372426 9# attention of the maintainer. *DO NOT* disable 5.8 testing - it is here for
10# a very good reason
d70070c9 11#
afeb40d2 12# the entire run times out after 50 minutes, or after 5 minutes without
13# console output
d70070c9 14
d0b79c51 15#
a0acdea0 16# Smoke all branches except for blocked* and wip/*
d0b79c51 17#
a0acdea0 18# Additionally master does not smoke with bleadperl
19# ( implemented in maint/travis-ci_scripts/10_before_install.bash )
d0b79c51 20#
d70070c9 21branches:
a0acdea0 22 except:
23 - /^wip\//
24 - /^blocked/
d70070c9 25
26notifications:
27 irc:
28 channels:
29 - "irc.perl.org#dbic-smoke"
30 template:
31 - "%{branch}#%{build_number} by %{author}: %{message} (%{build_url})"
32 on_success: change
33 on_failure: always
34 use_notice: true
35
36 email:
2af1c37d 37 recipients:
38 - ribasushi@cpan.org
2af1c37d 39 on_success: change
4ac234b5 40 on_failure: always
d70070c9 41
36372426 42addons:
43 apt:
44 packages:
45 - libapp-nopaste-perl
46 - net-tools
003e97c5 47
36372426 48# This is probably a net-loss for setup etc - a bare 'C' will likely fare much better
915876d7 49language: perl
d70070c9 50
36372426 51# Currently not trying osx: https://github.com/travis-ci/travis-ci/issues/2314
52os: linux
915876d7 53
36372426 54# The defaults run under the more rapid container infra. The hardware is
55# actually *much* slower, but the jobs start much faster, for more info see
56# https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments
57# Combined with 'fast_finish' this will result in an "uh-oh" email as early
58# as possible
59dist: precise
60sudo: false
61env: CLEANTEST=true
dea888a6 62
36372426 63perl:
64 - "5.8"
2c649faf 65 - "5.10"
36372426 66 - "5.22-extras"
cea30127 67
d70070c9 68matrix:
070b8a0c 69 fast_finish: true
36372426 70
d70070c9 71 include:
36372426 72
73 # Same as the "master matrix" above, frozen under older dist/infrastructure
74 # In genereal it is strongly recommended to keep things on the older
75 # version indefinitely - there is little value in-depth smoking on
76 # more recent software stacks
77 - perl: "5.8"
78 sudo: required
79 dist: precise
80 env:
81 - CLEANTEST=false
82
2c649faf 83 - perl: "5.10"
84 sudo: required
85 dist: precise
86 env:
87 - CLEANTEST=false
88
36372426 89 - perl: "5.22-extras"
90 sudo: required
91 dist: precise
92 env:
93 - CLEANTEST=false
94
95 # CLEANTEST of minimum supported with non-tracing poisoning, single thread (hence the sudo)
96 - perl: "5.8.3_nt_mb"
97 sudo: required
98 dist: precise
d70070c9 99 env:
36372426 100 - VCPU_USE=1
ced296a8 101 - CLEANTEST=true
e9d552de 102 - POISON_ENV=true
e52712a8 103 - DBIC_TRACE_PROFILE=console_monochrome
104 - BREWVER=5.8.3
105 - BREWOPTS="-Dusemorebits"
915876d7 106
e93fb362 107 # Full Test of minimum supported without threads with plain poisoned trace
36372426 108 - perl: "5.8.3_nt"
109 sudo: required
110 dist: precise
111 # run these under legacy - great simulation of low memory env
112 group: legacy
6d2b5c14 113 env:
e52712a8 114 - CLEANTEST=false
115 - POISON_ENV=true
e93fb362 116 - DBIC_TRACE=1
e52712a8 117 - BREWVER=5.8.3
6d2b5c14 118
e52712a8 119 # Full Test of minimum supported with threads with non-tracing poisoning
36372426 120 - perl: "5.8.5_thr"
121 sudo: required
122 dist: precise
123 # run these under legacy - great simulation of low memory env
124 group: legacy
e52712a8 125 env:
126 - CLEANTEST=false
127 - POISON_ENV=true
128 - DBIC_TRACE_PROFILE=console
129 - BREWVER=5.8.5
130 - BREWOPTS="-Duseithreads"
131
132 # CLEANTEST of solaris-like perl with non-tracing poisoning
36372426 133 - perl: "5.8.4_nt"
134 sudo: false
135 dist: precise
d70070c9 136 env:
137 - CLEANTEST=true
e52712a8 138 - POISON_ENV=true
139 - DBIC_TRACE_PROFILE=console
140 - BREWVER=5.8.4
d70070c9 141
7db28735 142 # Full test: this particular perl is quite widespread, single thread
36372426 143 - perl: "5.8.8_thr"
7db28735 144 sudo: required
36372426 145 dist: precise
d70070c9 146 env:
7db28735 147 - VCPU_USE=1
148 - CLEANTEST=false
e52712a8 149 - BREWVER=5.8.8
ee70a1ed 150 - BREWOPTS="-Duseithreads"
d70070c9 151
e9d552de 152 # CLEANTEST: this is the perl suse ships, with env poisoning
36372426 153 - perl: "5.10.0_thr_dbg"
154 sudo: false
155 dist: precise
ced296a8 156 env:
e52712a8 157 - CLEANTEST=true
e9d552de 158 - POISON_ENV=true
e52712a8 159 - BREWVER=5.10.0
160 - BREWOPTS="-DDEBUGGING -Duseithreads"
ced296a8 161
36372426 162 # CLEANTEST: this one is in a number of debian-based LTS (test a sane CPAN.pm, single thread)
163 - perl: "5.14.2_thr_mb"
164 sudo: required
165 dist: precise
ced296a8 166 env:
36372426 167 - VCPU_USE=1
e52712a8 168 - CLEANTEST=true
169 - BREWVER=5.14.2
170 - BREWOPTS="-Duseithreads -Dusemorebits"
ced296a8 171
172 ###
eed5492f 173 # some permutations of tracing and envvar poisoning
ced296a8 174
36372426 175 - perl: "5.12.3_thr"
176 sudo: false
177 dist: precise
7c1a09fc 178 env:
e52712a8 179 - CLEANTEST=true
e9d552de 180 - POISON_ENV=true
7c1a09fc 181 - DBIC_TRACE=1
e52712a8 182 - DBIC_MULTICREATE_DEBUG=1
183 - DBIC_STORAGE_RETRY_DEBUG=1
7c1a09fc 184 - DBIC_TRACE_PROFILE=console
e52712a8 185 - BREWVER=5.12.3
186 - BREWOPTS="-Duseithreads"
eba59b7e 187
36372426 188 - perl: "5.16.3_thr_mb"
189 sudo: required
190 dist: precise
eba59b7e 191 env:
e52712a8 192 - CLEANTEST=false
e52712a8 193 - POISON_ENV=true
e9d552de 194 - DBIC_TRACE=1
e52712a8 195 - BREWVER=5.16.3
196 - BREWOPTS="-Duseithreads -Dusemorebits"
eba59b7e 197
36372426 198 - perl: "5.18-extras"
199 sudo: required
200 # explicit new infra spec preparing for a future forced upgrade
201 dist: trusty
eba59b7e 202 env:
203 - CLEANTEST=false
e52712a8 204 - POISON_ENV=true
e9d552de 205 - DBIC_TRACE=1
eba59b7e 206 - DBIC_TRACE_PROFILE=console_monochrome
0ba0c34f 207 - DBICTEST_VIA_REPLICATED=0
da9346a0 208 - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
eba59b7e 209
261141ce 210 ###
211 # Start of the allow_failures block
212
e9d552de 213 # threaded oldest possible with blead CPAN
36372426 214 - perl: "devcpan_5.8.1_thr_mb"
215 sudo: false
216 dist: precise
4841171c 217 env:
218 - CLEANTEST=true
219 - DEVREL_DEPS=true
4841171c 220 - BREWVER=5.8.1
221 - BREWOPTS="-Duseithreads -Dusemorebits"
222
e93fb362 223 # oldest possible with blead CPAN with poisoning and plain trace
36372426 224 - perl: "devcpan_5.8.1"
225 sudo: false
226 dist: precise
dd5de10a 227 env:
228 - CLEANTEST=true
dd5de10a 229 - DEVREL_DEPS=true
e52712a8 230 - POISON_ENV=true
e93fb362 231 - DBIC_TRACE=1
da9346a0 232 - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
e9d552de 233 - BREWVER=5.8.1
234
fb30f0c0 235 # 5.8.3 with blead CPAN
36372426 236 - perl: "devcpan_5.8.3_mb"
237 sudo: required
238 # explicit new infra spec preparing for a future forced upgrade
239 dist: trusty
fb30f0c0 240 env:
241 - CLEANTEST=false
242 - DEVREL_DEPS=true
243 - BREWVER=5.8.3
244 - BREWOPTS="-Dusemorebits"
245
e9d552de 246 # 5.8.7 threaded with blead CPAN with non-tracing poisoning
36372426 247 - perl: "devcpan_5.8.7_thr"
248 sudo: false
249 dist: precise
e9d552de 250 env:
251 - CLEANTEST=true
252 - DEVREL_DEPS=true
253 - POISON_ENV=true
254 - BREWVER=5.8.7
e52712a8 255 - BREWOPTS="-Duseithreads"
dd5de10a 256
ee70a1ed 257 # 5.8.8 threaded MB (exercises P5#72210)
36372426 258 - perl: "devcpan_5.8.8_thr_mb"
259 sudo: false
260 dist: precise
ee70a1ed 261 env:
262 - CLEANTEST=true
da9346a0 263 - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
ee70a1ed 264 - DEVREL_DEPS=true
265 - BREWVER=5.8.8
266 - BREWOPTS="-Duseithreads -Dusemorebits"
267
e6b373aa 268 # 5.10.0 threaded with blead CPAN
36372426 269 - perl: "devcpan_5.10.0_thr_mb"
270 sudo: false
271 dist: precise
e6b373aa 272 env:
273 - CLEANTEST=true
e6b373aa 274 - DEVREL_DEPS=true
e52712a8 275 - BREWVER=5.10.0
276 - BREWOPTS="-Duseithreads -Dusemorebits"
e6b373aa 277
e52712a8 278 # 5.12.1 with blead CPAN
36372426 279 - perl: "devcpan_5.12.1_thr"
280 sudo: false
281 dist: precise
e6b373aa 282 env:
283 - CLEANTEST=true
2f51deb1 284 - DEVREL_DEPS=true
e52712a8 285 - BREWVER=5.12.1
286 - BREWOPTS="-Duseithreads"
2f51deb1 287
36372426 288 # bleadperl with stock CPAN, full depchain test with non-tracing poisoning, single thread
289 - perl: "bleadperl"
290 sudo: required
291 dist: precise
261141ce 292 env:
36372426 293 - VCPU_USE=1
c47de5de 294 - CLEANTEST=true
e52712a8 295 - POISON_ENV=true
261141ce 296 - BREWVER=blead
297
7db28735 298 # bleadperl with blead CPAN, single thread
36372426 299 - perl: "devcpan_bleadperl_thr_mb"
300 sudo: required
301 # explicitly do not specify dist - see what the default does
2f51deb1 302 env:
7db28735 303 - VCPU_USE=1
2f51deb1 304 - CLEANTEST=false
2f51deb1 305 - DEVREL_DEPS=true
e52712a8 306 - BREWVER=blead
307 - BREWOPTS="-Duseithreads -Dusemorebits"
2f51deb1 308
62f2092b 309 # CLEANTEST of http://schplog.schmorp.de/2015-06-06-a-stable-perl.html with non-tracing poisoning
36372426 310 - perl: "schmorp_stableperl_thr_mb"
311 sudo: false
312 dist: precise
62f2092b 313 env:
314 - CLEANTEST=true
315 - POISON_ENV=true
316 - BREWVER=schmorp_stableperl
317 - BREWOPTS="-Duseithreads -Dusemorebits"
261141ce 318
319 # which ones of the above can fail
320 allow_failures:
f2f65c95 321
f207111d 322 # these run with various dev snapshots - allowed to fail
4841171c 323 - perl: devcpan_5.8.1_thr_mb
e9d552de 324 - perl: devcpan_5.8.1
fb30f0c0 325 - perl: devcpan_5.8.3_mb
e9d552de 326 - perl: devcpan_5.8.7_thr
ee70a1ed 327 - perl: devcpan_5.8.8_thr_mb
dd5de10a 328 - perl: devcpan_5.10.0_thr_mb
e52712a8 329 - perl: devcpan_5.12.1_thr
c47de5de 330 - perl: bleadperl
2f51deb1 331 - perl: devcpan_bleadperl_thr_mb
62f2092b 332 - perl: schmorp_stableperl_thr_mb
261141ce 333
334
afeb40d2 335###
336### For the following two phases -e is *set*
337###
b58ecb01 338
d70070c9 339before_install:
2b32a020 340 # common functions for all run phases below
afeb40d2 341 #
342 # this is an exporter - sourcing it is crucial
343 # among other things it also sets -e
344 #
2b32a020 345 - source maint/travis-ci_scripts/common.bash
346
b58ecb01 347 # Sets global envvars, downloads/configures debs based on CLEANTEST
348 # Sets extra DBICTEST_* envvars
349 #
afeb40d2 350 # this is an exporter - sourcing it is crucial
351 #
b58ecb01 352 - source maint/travis-ci_scripts/10_before_install.bash
d70070c9 353
354install:
355 # Build and switch to a custom perl if requested
b58ecb01 356 # Configure the perl env, preinstall some generic toolchain parts
afeb40d2 357 # Possibly poison the environment
358 #
359 # this is an exporter - sourcing it is crucial
b58ecb01 360 #
b58ecb01 361 - source maint/travis-ci_scripts/20_install.bash
d70070c9 362
afeb40d2 363###
364### From this point on -e is *unset*, rely on travis' error handling
365###
366 - set +e
367
b58ecb01 368before_script:
369 # Preinstall/install deps based on envvars/CLEANTEST
370 #
ac4e80df 371 # need to invoke the after_failure script manually
372 # because 'after_failure' runs only after 'script' fails
373 #
8a684aea 374 - maint/getstatus maint/travis-ci_scripts/30_before_script.bash
c299fd65 375
b58ecb01 376script:
377 # Run actual tests
378 #
ac4e80df 379 - maint/getstatus maint/travis-ci_scripts/40_script.bash
c87d30a7 380
6bb14e9b 381###
382### Set -e back, work around https://github.com/travis-ci/travis-ci/issues/3533
383###
384 - set -e
385
c87d30a7 386after_success:
b58ecb01 387 # Check if we can assemble a dist properly if not in CLEANTEST
388 #
ac4e80df 389 - maint/getstatus maint/travis-ci_scripts/50_after_success.bash
b58ecb01 390
391after_failure:
ac4e80df 392 # Final sysinfo printout on fail
b58ecb01 393 #
ac4e80df 394 - maint/getstatus maint/travis-ci_scripts/50_after_failure.bash
b58ecb01 395
396after_script:
397 # No tasks yet
398 #
ac4e80df 399 #- maint/getstatus maint/travis-ci_scripts/60_after_script.bash