Bump version to accomodate pre-beta testers
[dbsrgits/DBIx-Class.git] / .travis.yml
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
9 # attention of the maintainer. *DO NOT* disable 5.8 testing - it is here for
10 # a very good reason
11 #
12 # the entire run times out after 50 minutes, or after 5 minutes without
13 # console output
14
15 #
16 # Smoke all branches except for blocked* and wip/*
17 branches:
18   except:
19     - /^wip\//
20     - /^blocked/
21
22 notifications:
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:
33     recipients:
34       - CPAN-CI@leporine.io
35     on_success: change
36     on_failure: always
37
38 addons:
39   apt:
40     packages:
41       - libapp-nopaste-perl
42       - net-tools
43
44 # This is probably a net-loss for setup etc - a bare 'C' will likely fare much better
45 language: perl
46
47 # Currently not trying osx: https://github.com/travis-ci/travis-ci/issues/2314
48 os: linux
49
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
55 dist: precise
56 sudo: false
57 env: CLEANTEST=true
58
59 perl:
60   - "5.8"
61   - "5.10"
62   - "5.22-extras"
63
64 matrix:
65   fast_finish: true
66
67   include:
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
73     # Add moderate (not complete) poisoning, as these will run on PR-related
74     # builds, therefore contributors will get notified about *most* issues
75     - perl: "5.8"
76       sudo: required
77       dist: precise
78       env:
79         - CLEANTEST=false
80         - POISON_ENV=true
81
82     - perl: "5.10"
83       sudo: required
84       dist: precise
85       env:
86         - CLEANTEST=false
87         - POISON_ENV=true
88
89     - perl: "5.22-extras"
90       sudo: required
91       dist: precise
92       env:
93         - CLEANTEST=false
94         - POISON_ENV=true
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
100       env:
101         - VCPU_USE=1
102         - CLEANTEST=true
103         - POISON_ENV=true
104         - DBIC_TRACE_PROFILE=console_monochrome
105         - BREWVER=5.8.3
106         - BREWOPTS="-Dusemorebits"
107
108     # Full Test of minimum supported without threads with plain poisoned trace
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
114       env:
115         - CLEANTEST=false
116         - POISON_ENV=true
117         - DBIC_TRACE=1
118         - BREWVER=5.8.3
119
120     # Full Test of minimum supported with threads with non-tracing poisoning
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
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
134     - perl: "5.8.4_nt"
135       sudo: false
136       dist: precise
137       env:
138         - CLEANTEST=true
139         - POISON_ENV=true
140         - DBIC_TRACE_PROFILE=console
141         - BREWVER=5.8.4
142
143     # Full test: this particular perl is quite widespread, single thread
144     - perl: "5.8.8_thr"
145       sudo: required
146       dist: precise
147       group: legacy
148       env:
149         - VCPU_USE=1
150         - CLEANTEST=false
151         - BREWVER=5.8.8
152         - BREWOPTS="-Duseithreads"
153
154     # CLEANTEST: this is the perl suse ships, with env poisoning
155     - perl: "5.10.0_thr_dbg"
156       sudo: false
157       dist: precise
158       env:
159         - CLEANTEST=true
160         - POISON_ENV=true
161         - BREWVER=5.10.0
162         - BREWOPTS="-DDEBUGGING -Duseithreads"
163
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
168       env:
169         - VCPU_USE=1
170         - CLEANTEST=true
171         - BREWVER=5.14.2
172         - BREWOPTS="-Duseithreads -Dusemorebits"
173
174     ###
175     # some permutations of tracing and envvar poisoning
176
177     - perl: "5.12.3_thr"
178       sudo: false
179       dist: precise
180       env:
181         - CLEANTEST=true
182         - POISON_ENV=true
183         - DBIC_TRACE=1
184         - DBIC_MULTICREATE_DEBUG=1
185         - DBIC_STORAGE_RETRY_DEBUG=1
186         - DBIC_TRACE_PROFILE=console
187         - BREWVER=5.12.3
188         - BREWOPTS="-Duseithreads"
189
190     - perl: "5.16.3_thr_mb"
191       sudo: required
192       dist: precise
193       env:
194         - CLEANTEST=false
195         - DBIC_TRACE=1
196         - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
197         - BREWVER=5.16.3
198         - BREWOPTS="-Duseithreads -Dusemorebits"
199
200     - perl: "5.18-extras"
201       sudo: required
202       # explicit new infra spec preparing for a future forced upgrade
203       dist: trusty
204       env:
205         - CLEANTEST=false
206         - POISON_ENV=true
207         - DBIC_TRACE=1
208         - DBIC_TRACE_PROFILE=console_monochrome
209         - DBICTEST_VIA_REPLICATED=0
210         - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
211
212     # MAKE SURE TO KEEP THE FLAGS IDENTICAL TO CPERL BELOW
213     # allows for easier side-by-side comparison
214     # vcpu=1 for even more stable results
215     - perl: "5.24.0_thr_qm"
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
225         - BREWVER=5.24.0
226         - BREWOPTS="-Duseithreads -Dusequadmath"
227
228     ###
229     # Start of the allow_failures block
230
231     # MAKE SURE TO KEEP THE FLAGS IDENTICAL TO STOCK 5.latest.comparable ABOVE
232     # allows for easier side-by-side comparison
233     # vcpu=1 for even more stable results
234     - perl: "cperl-5.24.0_thr_qm"
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:
240         - VCPU_USE=1
241         - CLEANTEST=true
242         - POISON_ENV=true
243         - MVDT=false
244         - BREWVER=cperl-5.24.0
245         - BREWOPTS="-Duseithreads -Dusequadmath"
246
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
257     # threaded oldest possible with blead CPAN
258     - perl: "devcpan_5.8.1_thr_mb"
259       sudo: false
260       dist: precise
261       env:
262         - CLEANTEST=true
263         - DEVREL_DEPS=true
264         - BREWVER=5.8.1
265         - BREWOPTS="-Duseithreads -Dusemorebits"
266
267     # oldest possible with blead CPAN with poisoning and plain trace
268     - perl: "devcpan_5.8.1"
269       sudo: false
270       dist: precise
271       env:
272         - CLEANTEST=true
273         - DEVREL_DEPS=true
274         - POISON_ENV=true
275         - DBIC_TRACE=1
276         - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
277         - BREWVER=5.8.1
278
279     # 5.8.3 with blead CPAN
280     - perl: "devcpan_5.8.3_mb"
281       sudo: required
282       # explicit new infra spec preparing for a future forced upgrade
283       dist: trusty
284       env:
285         - CLEANTEST=false
286         - DEVREL_DEPS=true
287         - BREWVER=5.8.3
288         - BREWOPTS="-Dusemorebits"
289
290     # 5.8.7 threaded with blead CPAN with non-tracing poisoning
291     - perl: "devcpan_5.8.7_thr"
292       sudo: false
293       dist: precise
294       env:
295         - CLEANTEST=true
296         - DEVREL_DEPS=true
297         - POISON_ENV=true
298         - BREWVER=5.8.7
299         - BREWOPTS="-Duseithreads"
300
301     # 5.8.8 threaded MB (exercises P5#72210)
302     - perl: "devcpan_5.8.8_thr_mb"
303       sudo: false
304       dist: precise
305       env:
306         - CLEANTEST=true
307         - DBICTEST_VERSION_WARNS_INDISCRIMINATELY=1
308         - DEVREL_DEPS=true
309         - BREWVER=5.8.8
310         - BREWOPTS="-Duseithreads -Dusemorebits"
311
312     # 5.10.0 threaded with blead CPAN
313     - perl: "devcpan_5.10.0_thr_mb"
314       sudo: false
315       dist: precise
316       env:
317         - CLEANTEST=true
318         - DEVREL_DEPS=true
319         - BREWVER=5.10.0
320         - BREWOPTS="-Duseithreads -Dusemorebits"
321
322     # 5.12.1 with blead CPAN
323     - perl: "devcpan_5.12.1_thr"
324       sudo: false
325       dist: precise
326       env:
327         - CLEANTEST=true
328         - DEVREL_DEPS=true
329         - BREWVER=5.12.1
330         - BREWOPTS="-Duseithreads"
331
332     # bleadperl with stock CPAN, full depchain test with non-tracing poisoning, single thread
333     - perl: "bleadperl"
334       sudo: required
335       dist: precise
336       env:
337         - VCPU_USE=1
338         - CLEANTEST=true
339         - POISON_ENV=true
340         - BREWVER=blead
341
342     # bleadperl with blead CPAN, single thread
343     - perl: "devcpan_bleadperl_thr_mb"
344       sudo: required
345       # explicitly do not specify dist - see what the default does
346       env:
347         - VCPU_USE=1
348         - CLEANTEST=false
349         - DEVREL_DEPS=true
350         - BREWVER=blead
351         - BREWOPTS="-Duseithreads -Dusemorebits"
352
353     # CLEANTEST of http://schplog.schmorp.de/2015-06-06-a-stable-perl.html with non-tracing poisoning
354     - perl: "schmorp_stableperl_thr_mb"
355       sudo: false
356       dist: precise
357       env:
358         - CLEANTEST=true
359         - POISON_ENV=true
360         - BREWVER=schmorp_stableperl
361         - BREWOPTS="-Duseithreads -Dusemorebits"
362
363   # which ones of the above can fail
364   allow_failures:
365
366     # these run with various dev snapshots - allowed to fail
367     - perl: cperl-5.24.0_thr_qm
368     - perl: cperl-master_thr
369     - perl: devcpan_5.8.1_thr_mb
370     - perl: devcpan_5.8.1
371     - perl: devcpan_5.8.3_mb
372     - perl: devcpan_5.8.7_thr
373     - perl: devcpan_5.8.8_thr_mb
374     - perl: devcpan_5.10.0_thr_mb
375     - perl: devcpan_5.12.1_thr
376     - perl: bleadperl
377     - perl: devcpan_bleadperl_thr_mb
378     - perl: schmorp_stableperl_thr_mb
379
380
381 ###
382 ### For the following two phases -e is *set*
383 ###
384
385 before_install:
386   # common functions for all run phases below
387   #
388   # this is an exporter - sourcing it is crucial
389   # among other things it also sets -e
390   #
391   - source maint/travis-ci_scripts/common.bash
392
393   # Sets global envvars, downloads/configures debs based on CLEANTEST
394   # Sets extra DBICTEST_* envvars
395   #
396   # this is an exporter - sourcing it is crucial
397   #
398   - source maint/travis-ci_scripts/10_before_install.bash
399
400 install:
401   # Build and switch to a custom perl if requested
402   # Configure the perl env, preinstall some generic toolchain parts
403   # Possibly poison the environment
404   #
405   # this is an exporter - sourcing it is crucial
406   #
407   - source maint/travis-ci_scripts/20_install.bash
408
409 ###
410 ### From this point on -e is *unset*, rely on travis' error handling
411 ###
412   - set +e
413
414 before_script:
415   # Preinstall/install deps based on envvars/CLEANTEST
416   #
417   # need to invoke the after_failure script manually
418   # because 'after_failure' runs only after 'script' fails
419   #
420   - maint/getstatus maint/travis-ci_scripts/30_before_script.bash
421
422 script:
423   # Run actual tests
424   #
425   - maint/getstatus maint/travis-ci_scripts/40_script.bash
426
427 ###
428 ### Set -e back, work around https://github.com/travis-ci/travis-ci/issues/3533
429 ###
430   - set -e
431
432 after_success:
433   # Check if we can assemble a dist properly if not in CLEANTEST
434   #
435   - maint/getstatus maint/travis-ci_scripts/50_after_success.bash || ( maint/travis-ci_scripts/50_after_failure.bash && /bin/false )
436
437 after_failure:
438   # Final sysinfo printout on fail
439   #
440   - maint/getstatus maint/travis-ci_scripts/50_after_failure.bash
441
442 after_script:
443   # No tasks yet
444   #
445   #- maint/getstatus maint/travis-ci_scripts/60_after_script.bash