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