Commit | Line | Data |
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 |
9 | # attention of ribasushi. *DO NOT* disable 5.8 testing - it is here for a |
10 | # reason |
11 | # |
6d2b5c14 |
12 | # * The matrix is built from two main modes - CLEANTEST = [true|false]. |
13 | # - In the first case we test with minimal deps available, and skip everything |
14 | # listed in DBIC::OptDesps. The modules are installed with classic CPAN |
15 | # invocations and are *fully tested*. In other words we simulate what would |
16 | # happen if a user tried to install on a just-compiled virgin perl |
17 | # - Without CLEANTEST we bring the armada of RDBMS and install the maximum |
18 | # possible set of deps *without testing them*. This ensures we stay within |
19 | # a reasonable build-time and still run as many of our tests as possible |
d70070c9 |
20 | # |
1864ab54 |
21 | # * The perl builds and the DBIC tests run under VCPU_USE number of threads. |
6d2b5c14 |
22 | # The testing of dependencies under CLEANTEST runs single-threaded, at least |
23 | # until we fix our entire dep-chain to safely pass under -j |
d70070c9 |
24 | # |
25 | # * The way .travis.yml is fed to the command controller is idiotic - it |
26 | # makes using multiline `bash -c` statements impossible. Therefore to |
27 | # aid readability (our travis logic is rather complex), the bulk of |
b58ecb01 |
28 | # functionality is moved to scripts. More about the problem (and the |
d70070c9 |
29 | # WONTFIX "explanation") here: https://github.com/travis-ci/travis-ci/issues/497 |
30 | # |
afeb40d2 |
31 | # the entire run times out after 50 minutes, or after 5 minutes without |
32 | # console output |
d70070c9 |
33 | |
d0b79c51 |
34 | # |
a0acdea0 |
35 | # Smoke all branches except for blocked* and wip/* |
d0b79c51 |
36 | # |
a0acdea0 |
37 | # Additionally master does not smoke with bleadperl |
38 | # ( implemented in maint/travis-ci_scripts/10_before_install.bash ) |
d0b79c51 |
39 | # |
d70070c9 |
40 | branches: |
a0acdea0 |
41 | except: |
42 | - /^wip\// |
43 | - /^blocked/ |
d70070c9 |
44 | |
45 | notifications: |
46 | irc: |
47 | channels: |
48 | - "irc.perl.org#dbic-smoke" |
49 | template: |
50 | - "%{branch}#%{build_number} by %{author}: %{message} (%{build_url})" |
51 | on_success: change |
52 | on_failure: always |
53 | use_notice: true |
54 | |
55 | email: |
2af1c37d |
56 | recipients: |
57 | - ribasushi@cpan.org |
58 | # Temporary - if it proves to be too noisy, we'll shut it off |
ee896495 |
59 | #- dbix-class-devel@lists.scsys.co.uk |
2af1c37d |
60 | on_success: change |
4ac234b5 |
61 | on_failure: always |
d70070c9 |
62 | |
003e97c5 |
63 | # FIXME - This stuff is not yet available for free OSS accounts, sadpanda |
64 | # First paragrah on http://about.travis-ci.org/docs/user/caching/ |
65 | #cache: |
66 | # apt: true |
67 | # directories: |
68 | # - /var/cache/apt/archives |
69 | |
915876d7 |
70 | language: perl |
d70070c9 |
71 | |
915876d7 |
72 | perl: |
e52712a8 |
73 | - "5.8" |
4ae45d69 |
74 | - "5.20-extras" |
915876d7 |
75 | |
d70070c9 |
76 | env: |
77 | - CLEANTEST=false |
1864ab54 |
78 | - CLEANTEST=true VCPU_USE=1 |
dea888a6 |
79 | |
d70070c9 |
80 | matrix: |
070b8a0c |
81 | fast_finish: true |
d70070c9 |
82 | include: |
e52712a8 |
83 | # CLEANTEST of minimum supported with non-tracing poisoning |
84 | - perl: 5.8.3_nt_mb |
d70070c9 |
85 | env: |
ced296a8 |
86 | - CLEANTEST=true |
59effb9d |
87 | - POISON_ENV=true |
e52712a8 |
88 | - DBIC_TRACE_PROFILE=console_monochrome |
89 | - BREWVER=5.8.3 |
90 | - BREWOPTS="-Dusemorebits" |
915876d7 |
91 | |
e52712a8 |
92 | # Full Test of minimum supported without threads with non-tracing poisoning |
93 | - perl: 5.8.3_nt |
6d2b5c14 |
94 | env: |
e52712a8 |
95 | - CLEANTEST=false |
96 | - POISON_ENV=true |
97 | - BREWVER=5.8.3 |
6d2b5c14 |
98 | |
e52712a8 |
99 | # Full Test of minimum supported with threads with non-tracing poisoning |
100 | - perl: 5.8.5_thr |
101 | env: |
102 | - CLEANTEST=false |
103 | - POISON_ENV=true |
104 | - DBIC_TRACE_PROFILE=console |
105 | - BREWVER=5.8.5 |
106 | - BREWOPTS="-Duseithreads" |
107 | |
108 | # CLEANTEST of solaris-like perl with non-tracing poisoning |
109 | - perl: 5.8.4_nt |
d70070c9 |
110 | env: |
111 | - CLEANTEST=true |
e52712a8 |
112 | - POISON_ENV=true |
113 | - DBIC_TRACE_PROFILE=console |
114 | - BREWVER=5.8.4 |
d70070c9 |
115 | |
e52712a8 |
116 | # CLEANTEST: this particular perl is quite widespread |
117 | - perl: 5.8.8_thr_mb |
d70070c9 |
118 | env: |
119 | - CLEANTEST=true |
e52712a8 |
120 | - BREWVER=5.8.8 |
121 | - BREWOPTS="-Duseithreads -Dusemorebits" |
d70070c9 |
122 | |
59effb9d |
123 | # CLEANTEST: this is the perl suse ships, with env poisoning |
e52712a8 |
124 | - perl: 5.10.0_thr_dbg |
ced296a8 |
125 | env: |
e52712a8 |
126 | - CLEANTEST=true |
59effb9d |
127 | - POISON_ENV=true |
e52712a8 |
128 | - BREWVER=5.10.0 |
129 | - BREWOPTS="-DDEBUGGING -Duseithreads" |
ced296a8 |
130 | |
e52712a8 |
131 | # CLEANTEST: this one is in a number of debian-based LTS (test a sane CPAN.pm) |
132 | - perl: 5.14.2_thr_mb |
ced296a8 |
133 | env: |
e52712a8 |
134 | - CLEANTEST=true |
135 | - BREWVER=5.14.2 |
136 | - BREWOPTS="-Duseithreads -Dusemorebits" |
ced296a8 |
137 | |
138 | ### |
eed5492f |
139 | # some permutations of tracing and envvar poisoning |
ced296a8 |
140 | |
e52712a8 |
141 | - perl: 5.12.3_thr |
7c1a09fc |
142 | env: |
e52712a8 |
143 | - CLEANTEST=true |
59effb9d |
144 | - POISON_ENV=true |
7c1a09fc |
145 | - DBIC_TRACE=1 |
e52712a8 |
146 | - DBIC_MULTICREATE_DEBUG=1 |
147 | - DBIC_STORAGE_RETRY_DEBUG=1 |
7c1a09fc |
148 | - DBIC_TRACE_PROFILE=console |
e52712a8 |
149 | - BREWVER=5.12.3 |
150 | - BREWOPTS="-Duseithreads" |
eba59b7e |
151 | |
e52712a8 |
152 | - perl: 5.16.3_thr_mb |
eba59b7e |
153 | env: |
e52712a8 |
154 | - CLEANTEST=false |
e52712a8 |
155 | - POISON_ENV=true |
59effb9d |
156 | - DBIC_TRACE=1 |
e52712a8 |
157 | - BREWVER=5.16.3 |
158 | - BREWOPTS="-Duseithreads -Dusemorebits" |
eba59b7e |
159 | |
4ae45d69 |
160 | - perl: 5.18-extras |
eba59b7e |
161 | env: |
162 | - CLEANTEST=false |
e52712a8 |
163 | - POISON_ENV=true |
59effb9d |
164 | - DBIC_TRACE=1 |
eba59b7e |
165 | - DBIC_TRACE_PROFILE=console_monochrome |
16c65a37 |
166 | - DBICTEST_VIA_REPLICATED=0 |
eba59b7e |
167 | |
261141ce |
168 | ### |
169 | # Start of the allow_failures block |
170 | |
59effb9d |
171 | # threaded oldest possible with blead CPAN |
4841171c |
172 | - perl: devcpan_5.8.1_thr_mb |
173 | env: |
174 | - CLEANTEST=true |
175 | - DEVREL_DEPS=true |
4841171c |
176 | - BREWVER=5.8.1 |
177 | - BREWOPTS="-Duseithreads -Dusemorebits" |
178 | |
59effb9d |
179 | # oldest possible with blead CPAN with poisoning |
180 | - perl: devcpan_5.8.1 |
dd5de10a |
181 | env: |
182 | - CLEANTEST=true |
dd5de10a |
183 | - DEVREL_DEPS=true |
e52712a8 |
184 | - POISON_ENV=true |
59effb9d |
185 | - BREWVER=5.8.1 |
186 | |
187 | # 5.8.7 threaded with blead CPAN with non-tracing poisoning |
188 | - perl: devcpan_5.8.7_thr |
189 | env: |
190 | - CLEANTEST=true |
191 | - DEVREL_DEPS=true |
192 | - POISON_ENV=true |
193 | - BREWVER=5.8.7 |
e52712a8 |
194 | - BREWOPTS="-Duseithreads" |
dd5de10a |
195 | |
e6b373aa |
196 | # 5.10.0 threaded with blead CPAN |
197 | - perl: devcpan_5.10.0_thr_mb |
198 | env: |
199 | - CLEANTEST=true |
e6b373aa |
200 | - DEVREL_DEPS=true |
e52712a8 |
201 | - BREWVER=5.10.0 |
202 | - BREWOPTS="-Duseithreads -Dusemorebits" |
e6b373aa |
203 | |
e52712a8 |
204 | # 5.12.1 with blead CPAN |
205 | - perl: devcpan_5.12.1_thr |
e6b373aa |
206 | env: |
207 | - CLEANTEST=true |
2f51deb1 |
208 | - DEVREL_DEPS=true |
e52712a8 |
209 | - BREWVER=5.12.1 |
210 | - BREWOPTS="-Duseithreads" |
2f51deb1 |
211 | |
e52712a8 |
212 | # bleadperl with stock CPAN, full depchain test with non-tracing poisoning |
c47de5de |
213 | - perl: bleadperl |
261141ce |
214 | env: |
c47de5de |
215 | - CLEANTEST=true |
e52712a8 |
216 | - POISON_ENV=true |
261141ce |
217 | - BREWVER=blead |
218 | |
59effb9d |
219 | # bleadperl with blead CPAN |
2f51deb1 |
220 | - perl: devcpan_bleadperl_thr_mb |
221 | env: |
222 | - CLEANTEST=false |
2f51deb1 |
223 | - DEVREL_DEPS=true |
e52712a8 |
224 | - BREWVER=blead |
225 | - BREWOPTS="-Duseithreads -Dusemorebits" |
2f51deb1 |
226 | |
261141ce |
227 | |
228 | # which ones of the above can fail |
229 | allow_failures: |
f2f65c95 |
230 | |
f207111d |
231 | # these run with various dev snapshots - allowed to fail |
4841171c |
232 | - perl: devcpan_5.8.1_thr_mb |
59effb9d |
233 | - perl: devcpan_5.8.1 |
234 | - perl: devcpan_5.8.7_thr |
dd5de10a |
235 | - perl: devcpan_5.10.0_thr_mb |
e52712a8 |
236 | - perl: devcpan_5.12.1_thr |
c47de5de |
237 | - perl: bleadperl |
2f51deb1 |
238 | - perl: devcpan_bleadperl_thr_mb |
261141ce |
239 | |
240 | |
afeb40d2 |
241 | ### |
242 | ### For the following two phases -e is *set* |
243 | ### |
b58ecb01 |
244 | |
d70070c9 |
245 | before_install: |
2b32a020 |
246 | # common functions for all run phases below |
afeb40d2 |
247 | # |
248 | # this is an exporter - sourcing it is crucial |
249 | # among other things it also sets -e |
250 | # |
2b32a020 |
251 | - source maint/travis-ci_scripts/common.bash |
252 | |
b58ecb01 |
253 | # Sets global envvars, downloads/configures debs based on CLEANTEST |
254 | # Sets extra DBICTEST_* envvars |
255 | # |
afeb40d2 |
256 | # this is an exporter - sourcing it is crucial |
257 | # |
b58ecb01 |
258 | - source maint/travis-ci_scripts/10_before_install.bash |
d70070c9 |
259 | |
260 | install: |
261 | # Build and switch to a custom perl if requested |
b58ecb01 |
262 | # Configure the perl env, preinstall some generic toolchain parts |
afeb40d2 |
263 | # Possibly poison the environment |
264 | # |
265 | # this is an exporter - sourcing it is crucial |
b58ecb01 |
266 | # |
b58ecb01 |
267 | - source maint/travis-ci_scripts/20_install.bash |
d70070c9 |
268 | |
afeb40d2 |
269 | ### |
270 | ### From this point on -e is *unset*, rely on travis' error handling |
271 | ### |
272 | - set +e |
273 | |
b58ecb01 |
274 | before_script: |
275 | # Preinstall/install deps based on envvars/CLEANTEST |
276 | # |
ac4e80df |
277 | # need to invoke the after_failure script manually |
278 | # because 'after_failure' runs only after 'script' fails |
279 | # |
280 | - maint/getstatus maint/travis-ci_scripts/30_before_script.bash || ( maint/travis-ci_scripts/50_after_failure.bash && /bin/false ) |
c299fd65 |
281 | |
b58ecb01 |
282 | script: |
283 | # Run actual tests |
284 | # |
ac4e80df |
285 | - maint/getstatus maint/travis-ci_scripts/40_script.bash |
c87d30a7 |
286 | |
1864ab54 |
287 | ### |
288 | ### Set -e back, work around https://github.com/travis-ci/travis-ci/issues/3533 |
289 | ### |
290 | - set -e |
291 | |
c87d30a7 |
292 | after_success: |
b58ecb01 |
293 | # Check if we can assemble a dist properly if not in CLEANTEST |
294 | # |
ac4e80df |
295 | - maint/getstatus maint/travis-ci_scripts/50_after_success.bash |
b58ecb01 |
296 | |
297 | after_failure: |
ac4e80df |
298 | # Final sysinfo printout on fail |
b58ecb01 |
299 | # |
ac4e80df |
300 | - maint/getstatus maint/travis-ci_scripts/50_after_failure.bash |
b58ecb01 |
301 | |
302 | after_script: |
303 | # No tasks yet |
304 | # |
ac4e80df |
305 | #- maint/getstatus maint/travis-ci_scripts/60_after_script.bash |