Add explicit patronage listing (should have done this a while ago)
[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
e52712a8 142 # CLEANTEST: this particular perl is quite widespread
36372426 143 - perl: "5.8.8_thr"
144 sudo: false
145 dist: precise
d70070c9 146 env:
147 - CLEANTEST=true
e52712a8 148 - BREWVER=5.8.8
ee70a1ed 149 - BREWOPTS="-Duseithreads"
d70070c9 150
e9d552de 151 # CLEANTEST: this is the perl suse ships, with env poisoning
36372426 152 - perl: "5.10.0_thr_dbg"
153 sudo: false
154 dist: precise
ced296a8 155 env:
e52712a8 156 - CLEANTEST=true
e9d552de 157 - POISON_ENV=true
e52712a8 158 - BREWVER=5.10.0
159 - BREWOPTS="-DDEBUGGING -Duseithreads"
ced296a8 160
36372426 161 # CLEANTEST: this one is in a number of debian-based LTS (test a sane CPAN.pm, single thread)
162 - perl: "5.14.2_thr_mb"
163 sudo: required
164 dist: precise
ced296a8 165 env:
36372426 166 - VCPU_USE=1
e52712a8 167 - CLEANTEST=true
168 - BREWVER=5.14.2
169 - BREWOPTS="-Duseithreads -Dusemorebits"
ced296a8 170
171 ###
eed5492f 172 # some permutations of tracing and envvar poisoning
ced296a8 173
36372426 174 - perl: "5.12.3_thr"
175 sudo: false
176 dist: precise
7c1a09fc 177 env:
e52712a8 178 - CLEANTEST=true
e9d552de 179 - POISON_ENV=true
7c1a09fc 180 - DBIC_TRACE=1
e52712a8 181 - DBIC_MULTICREATE_DEBUG=1
182 - DBIC_STORAGE_RETRY_DEBUG=1
7c1a09fc 183 - DBIC_TRACE_PROFILE=console
e52712a8 184 - BREWVER=5.12.3
185 - BREWOPTS="-Duseithreads"
eba59b7e 186
36372426 187 - perl: "5.16.3_thr_mb"
188 sudo: required
189 dist: precise
eba59b7e 190 env:
e52712a8 191 - CLEANTEST=false
e52712a8 192 - POISON_ENV=true
e9d552de 193 - DBIC_TRACE=1
e52712a8 194 - BREWVER=5.16.3
195 - BREWOPTS="-Duseithreads -Dusemorebits"
eba59b7e 196
36372426 197 - perl: "5.18-extras"
198 sudo: required
199 # explicit new infra spec preparing for a future forced upgrade
200 dist: trusty
eba59b7e 201 env:
202 - CLEANTEST=false
e52712a8 203 - POISON_ENV=true
e9d552de 204 - DBIC_TRACE=1
eba59b7e 205 - DBIC_TRACE_PROFILE=console_monochrome
0ba0c34f 206 - DBICTEST_VIA_REPLICATED=0
da9346a0 207 - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
eba59b7e 208
261141ce 209 ###
210 # Start of the allow_failures block
211
e9d552de 212 # threaded oldest possible with blead CPAN
36372426 213 - perl: "devcpan_5.8.1_thr_mb"
214 sudo: false
215 dist: precise
4841171c 216 env:
217 - CLEANTEST=true
218 - DEVREL_DEPS=true
4841171c 219 - BREWVER=5.8.1
220 - BREWOPTS="-Duseithreads -Dusemorebits"
221
e93fb362 222 # oldest possible with blead CPAN with poisoning and plain trace
36372426 223 - perl: "devcpan_5.8.1"
224 sudo: false
225 dist: precise
dd5de10a 226 env:
227 - CLEANTEST=true
dd5de10a 228 - DEVREL_DEPS=true
e52712a8 229 - POISON_ENV=true
e93fb362 230 - DBIC_TRACE=1
da9346a0 231 - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
e9d552de 232 - BREWVER=5.8.1
233
fb30f0c0 234 # 5.8.3 with blead CPAN
36372426 235 - perl: "devcpan_5.8.3_mb"
236 sudo: required
237 # explicit new infra spec preparing for a future forced upgrade
238 dist: trusty
fb30f0c0 239 env:
240 - CLEANTEST=false
241 - DEVREL_DEPS=true
242 - BREWVER=5.8.3
243 - BREWOPTS="-Dusemorebits"
244
e9d552de 245 # 5.8.7 threaded with blead CPAN with non-tracing poisoning
36372426 246 - perl: "devcpan_5.8.7_thr"
247 sudo: false
248 dist: precise
e9d552de 249 env:
250 - CLEANTEST=true
251 - DEVREL_DEPS=true
252 - POISON_ENV=true
253 - BREWVER=5.8.7
e52712a8 254 - BREWOPTS="-Duseithreads"
dd5de10a 255
ee70a1ed 256 # 5.8.8 threaded MB (exercises P5#72210)
36372426 257 - perl: "devcpan_5.8.8_thr_mb"
258 sudo: false
259 dist: precise
ee70a1ed 260 env:
261 - CLEANTEST=true
da9346a0 262 - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
ee70a1ed 263 - DEVREL_DEPS=true
264 - BREWVER=5.8.8
265 - BREWOPTS="-Duseithreads -Dusemorebits"
266
e6b373aa 267 # 5.10.0 threaded with blead CPAN
36372426 268 - perl: "devcpan_5.10.0_thr_mb"
269 sudo: false
270 dist: precise
e6b373aa 271 env:
272 - CLEANTEST=true
e6b373aa 273 - DEVREL_DEPS=true
e52712a8 274 - BREWVER=5.10.0
275 - BREWOPTS="-Duseithreads -Dusemorebits"
e6b373aa 276
e52712a8 277 # 5.12.1 with blead CPAN
36372426 278 - perl: "devcpan_5.12.1_thr"
279 sudo: false
280 dist: precise
e6b373aa 281 env:
282 - CLEANTEST=true
2f51deb1 283 - DEVREL_DEPS=true
e52712a8 284 - BREWVER=5.12.1
285 - BREWOPTS="-Duseithreads"
2f51deb1 286
36372426 287 # bleadperl with stock CPAN, full depchain test with non-tracing poisoning, single thread
288 - perl: "bleadperl"
289 sudo: required
290 dist: precise
261141ce 291 env:
36372426 292 - VCPU_USE=1
c47de5de 293 - CLEANTEST=true
e52712a8 294 - POISON_ENV=true
261141ce 295 - BREWVER=blead
296
e9d552de 297 # bleadperl with blead CPAN
36372426 298 - perl: "devcpan_bleadperl_thr_mb"
299 sudo: required
300 # explicitly do not specify dist - see what the default does
2f51deb1 301 env:
302 - CLEANTEST=false
2f51deb1 303 - DEVREL_DEPS=true
e52712a8 304 - BREWVER=blead
305 - BREWOPTS="-Duseithreads -Dusemorebits"
2f51deb1 306
62f2092b 307 # CLEANTEST of http://schplog.schmorp.de/2015-06-06-a-stable-perl.html with non-tracing poisoning
36372426 308 - perl: "schmorp_stableperl_thr_mb"
309 sudo: false
310 dist: precise
62f2092b 311 env:
312 - CLEANTEST=true
313 - POISON_ENV=true
314 - BREWVER=schmorp_stableperl
315 - BREWOPTS="-Duseithreads -Dusemorebits"
261141ce 316
317 # which ones of the above can fail
318 allow_failures:
f2f65c95 319
f207111d 320 # these run with various dev snapshots - allowed to fail
4841171c 321 - perl: devcpan_5.8.1_thr_mb
e9d552de 322 - perl: devcpan_5.8.1
fb30f0c0 323 - perl: devcpan_5.8.3_mb
e9d552de 324 - perl: devcpan_5.8.7_thr
ee70a1ed 325 - perl: devcpan_5.8.8_thr_mb
dd5de10a 326 - perl: devcpan_5.10.0_thr_mb
e52712a8 327 - perl: devcpan_5.12.1_thr
c47de5de 328 - perl: bleadperl
2f51deb1 329 - perl: devcpan_bleadperl_thr_mb
62f2092b 330 - perl: schmorp_stableperl_thr_mb
261141ce 331
332
afeb40d2 333###
334### For the following two phases -e is *set*
335###
b58ecb01 336
d70070c9 337before_install:
2b32a020 338 # common functions for all run phases below
afeb40d2 339 #
340 # this is an exporter - sourcing it is crucial
341 # among other things it also sets -e
342 #
2b32a020 343 - source maint/travis-ci_scripts/common.bash
344
b58ecb01 345 # Sets global envvars, downloads/configures debs based on CLEANTEST
346 # Sets extra DBICTEST_* envvars
347 #
afeb40d2 348 # this is an exporter - sourcing it is crucial
349 #
b58ecb01 350 - source maint/travis-ci_scripts/10_before_install.bash
d70070c9 351
352install:
353 # Build and switch to a custom perl if requested
b58ecb01 354 # Configure the perl env, preinstall some generic toolchain parts
afeb40d2 355 # Possibly poison the environment
356 #
357 # this is an exporter - sourcing it is crucial
b58ecb01 358 #
b58ecb01 359 - source maint/travis-ci_scripts/20_install.bash
d70070c9 360
afeb40d2 361###
362### From this point on -e is *unset*, rely on travis' error handling
363###
364 - set +e
365
b58ecb01 366before_script:
367 # Preinstall/install deps based on envvars/CLEANTEST
368 #
ac4e80df 369 # need to invoke the after_failure script manually
370 # because 'after_failure' runs only after 'script' fails
371 #
8a684aea 372 - maint/getstatus maint/travis-ci_scripts/30_before_script.bash
c299fd65 373
b58ecb01 374script:
375 # Run actual tests
376 #
ac4e80df 377 - maint/getstatus maint/travis-ci_scripts/40_script.bash
c87d30a7 378
6bb14e9b 379###
380### Set -e back, work around https://github.com/travis-ci/travis-ci/issues/3533
381###
382 - set -e
383
c87d30a7 384after_success:
b58ecb01 385 # Check if we can assemble a dist properly if not in CLEANTEST
386 #
ac4e80df 387 - maint/getstatus maint/travis-ci_scripts/50_after_success.bash
b58ecb01 388
389after_failure:
ac4e80df 390 # Final sysinfo printout on fail
b58ecb01 391 #
ac4e80df 392 - maint/getstatus maint/travis-ci_scripts/50_after_failure.bash
b58ecb01 393
394after_script:
395 # No tasks yet
396 #
ac4e80df 397 #- maint/getstatus maint/travis-ci_scripts/60_after_script.bash