Commit | Line | Data |
b7254ae2 |
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 | # |
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 |
20 | # |
21 | # * The perl builds and the DBIC tests run under NUMTHREADS number of threads. |
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 |
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 |
28 | # functionality is moved to scripts. More about the problem (and the |
29 | # WONTFIX "explanation") here: https://github.com/travis-ci/travis-ci/issues/497 |
30 | # |
31 | |
32 | # |
33 | # Smoke all branches except for blocked* and wip/* |
34 | # |
35 | # Additionally master does not smoke with bleadperl |
36 | # ( implemented in maint/travis-ci_scripts/10_before_install.bash ) |
37 | # |
38 | branches: |
39 | except: |
40 | - /^wip\// |
41 | - /^blocked/ |
42 | |
43 | x_disabled_notifications: |
44 | irc: |
45 | channels: |
46 | - "irc.perl.org#dbic-smoke" |
47 | template: |
48 | - "%{branch}#%{build_number} by %{author}: %{message} (%{build_url})" |
49 | on_success: change |
50 | on_failure: always |
51 | use_notice: true |
52 | |
53 | email: |
54 | recipients: |
55 | - ilmari@ilmari.org |
56 | # Temporary - if it proves to be too noisy, we'll shut it off |
57 | #- dbix-class-devel@lists.scsys.co.uk |
58 | on_success: change |
59 | on_failure: always |
60 | |
61 | # FIXME - This stuff is not yet available for free OSS accounts, sadpanda |
62 | # First paragrah on http://about.travis-ci.org/docs/user/caching/ |
63 | #cache: |
64 | # apt: true |
65 | # directories: |
66 | # - /var/cache/apt/archives |
67 | |
68 | language: perl |
69 | |
70 | perl: |
0e64cfdd |
71 | - 5.20-extras |
72 | - "5.20" # needs quoting due to trailing zero |
73 | - 5.18-extras |
74 | - 5.18 |
b7254ae2 |
75 | |
76 | env: |
464bbc0a |
77 | - CLEANTEST=false DBICTEST_DB2=true |
78 | - CLEANTEST=false DBICTEST_ORA=true |
79 | - CLEANTEST=false DBICTEST_FIREBIRD=true |
94e24115 |
80 | - CLEANTEST=false DBICTEST_MYSQL_INNODB=1 |
b7254ae2 |
81 | - CLEANTEST=true |
82 | |
4ef0f7f7 |
83 | matrix: |
b7254ae2 |
84 | fast_finish: true |
85 | include: |
86 | # this particular perl is quite widespread |
87 | - perl: 5.8.8_thr_mb |
88 | env: |
89 | - CLEANTEST=true |
90 | - BREWOPTS="-Duseithreads -Dusemorebits" |
91 | - BREWVER=5.8.8 |
92 | |
93 | # so is this one (test a sane CPAN.pm) |
94 | - perl: 5.12.4_thr_mb |
95 | env: |
96 | - CLEANTEST=true |
97 | - BREWOPTS="-Duseithreads -Dusemorebits" |
98 | - BREWVER=5.12.4 |
99 | |
100 | # this is the perl suse ships |
101 | - perl: 5.10.0_thr_dbg |
102 | env: |
103 | - CLEANTEST=true |
104 | - BREWOPTS="-DDEBUGGING -Duseithreads" |
105 | - BREWVER=5.10.0 |
106 | |
107 | # CLEANTEST of minimum supported |
108 | - perl: 5.8.3_nt_mb |
109 | env: |
110 | - CLEANTEST=true |
111 | - BREWOPTS="-Dusemorebits" |
112 | - BREWVER=5.8.3 |
113 | |
114 | # Full Test of minimum supported with threads |
115 | - perl: 5.8.5_thr |
116 | env: |
117 | - CLEANTEST=false |
118 | - BREWOPTS="-Duseithreads" |
119 | - BREWVER=5.8.5 |
4ef0f7f7 |
120 | - DBICTEST_MYSQL_INNODB=1 |
b7254ae2 |
121 | |
122 | # Full Test of minimum supported without threads |
123 | - perl: 5.8.3_nt |
124 | env: |
125 | - CLEANTEST=false |
126 | - BREWOPTS="" |
127 | - BREWVER=5.8.3 |
4ef0f7f7 |
128 | - DBICTEST_MYSQL_INNODB=1 |
b7254ae2 |
129 | |
130 | ### |
131 | # some permutations of tracing and envvar poisoning |
132 | |
133 | - perl: 5.16.2_thr_mb |
134 | env: |
135 | - CLEANTEST=false |
136 | - POISON_ENV=true |
137 | - DBIC_TRACE=1 |
138 | - DBIC_MULTICREATE_DEBUG=0 |
4ef0f7f7 |
139 | - DBICTEST_MYSQL_INNODB=1 |
b7254ae2 |
140 | - BREWOPTS="-Duseithreads -Dusemorebits" |
141 | - BREWVER=5.16.2 |
142 | |
143 | - perl: 5.18 |
144 | env: |
145 | - CLEANTEST=false |
146 | - POISON_ENV=true |
147 | - DBIC_TRACE_PROFILE=console |
148 | |
149 | - perl: 5.8 |
150 | env: |
151 | - CLEANTEST=true |
152 | - POISON_ENV=true |
153 | - DBIC_TRACE=1 |
4ef0f7f7 |
154 | - DBICTEST_MYSQL_INNODB=1 |
b7254ae2 |
155 | |
156 | - perl: 5.18 |
157 | env: |
158 | - CLEANTEST=false |
159 | - POISON_ENV=true |
160 | - DBIC_TRACE=1 |
161 | - DBIC_TRACE_PROFILE=console_monochrome |
162 | - DBIC_MULTICREATE_DEBUG=0 |
4ef0f7f7 |
163 | - DBICTEST_MYSQL_INNODB=1 |
b7254ae2 |
164 | |
165 | ### |
166 | # Start of the allow_failures block |
167 | |
168 | # old threaded with blead CPAN |
169 | - perl: devcpan_5.8.7_thr |
170 | env: |
171 | - CLEANTEST=true |
172 | - BREWOPTS="-Duseithreads" |
173 | - BREWVER=5.8.7 |
174 | - DEVREL_DEPS=true |
175 | |
176 | # 5.10.0 threaded with blead CPAN |
177 | - perl: devcpan_5.10.0_thr_mb |
178 | env: |
179 | - CLEANTEST=true |
180 | - BREWOPTS="-Duseithreads -Dusemorebits" |
181 | - BREWVER=5.10.0 |
182 | - DEVREL_DEPS=true |
183 | |
184 | # 5.12.2 with blead CPAN |
185 | - perl: devcpan_5.12.2_thr |
186 | env: |
187 | - CLEANTEST=true |
188 | - BREWOPTS="-Duseithreads" |
189 | - BREWVER=5.12.2 |
190 | - DEVREL_DEPS=true |
191 | |
192 | # recentish threaded stable with blead CPAN |
193 | - perl: devcpan_5.18.2_thr_mb |
194 | env: |
195 | - CLEANTEST=false |
196 | - BREWOPTS="-Duseithreads -Dusemorebits" |
197 | - BREWVER=5.18.2 |
198 | - DEVREL_DEPS=true |
4ef0f7f7 |
199 | - DBICTEST_MYSQL_INNODB=1 |
b7254ae2 |
200 | |
201 | # bleadperl with stock CPAN, full depchain test |
202 | - perl: bleadperl |
203 | env: |
204 | - CLEANTEST=true |
205 | - BREWVER=blead |
206 | |
207 | # bleadperl with blead CPAN |
208 | - perl: devcpan_bleadperl_thr_mb |
209 | env: |
210 | - CLEANTEST=false |
211 | - BREWOPTS="-Duseithreads -Dusemorebits" |
212 | - BREWVER=blead |
213 | - DEVREL_DEPS=true |
4ef0f7f7 |
214 | - DBICTEST_MYSQL_INNODB=1 |
b7254ae2 |
215 | |
216 | |
217 | # which ones of the above can fail |
218 | allow_failures: |
219 | |
220 | # these run with various dev snapshots - allowed to fail |
221 | - perl: devcpan_5.8.7_thr |
222 | - perl: devcpan_5.10.0_thr_mb |
223 | - perl: devcpan_5.12.2_thr |
224 | - perl: devcpan_5.18.2_thr_mb |
225 | - perl: bleadperl |
226 | - perl: devcpan_bleadperl_thr_mb |
227 | |
ddc4c0e6 |
228 | # Several upstream deps are flaky on 5.8.3 |
229 | - perl: 5.8.3_nt |
230 | - perl: 5.8.3_nt_mb |
231 | |
4f57c450 |
232 | # namespace::clean breaks on threaded 5.8.8 |
233 | # https://rt.cpan.org/Ticket/Display.html?id=107343 |
234 | - perl: 5.8.8_thr_mb |
235 | |
b7254ae2 |
236 | |
237 | # sourcing the files is *EXTREMELY* important - otherwise |
238 | # no envvars will survive |
239 | |
240 | # the entire run times out after 50 minutes, or after 5 minutes without |
241 | # console output |
242 | |
243 | before_install: |
a61771df |
244 | # common functions for all run phases below |
245 | # |
246 | # this is an exporter - sourcing it is crucial |
247 | # among other things it also sets -e |
248 | # |
249 | - source maint/travis-ci_scripts/common.bash |
250 | |
b7254ae2 |
251 | # Sets global envvars, downloads/configures debs based on CLEANTEST |
252 | # Sets extra DBICTEST_* envvars |
253 | # |
a61771df |
254 | # this is an exporter - sourcing it is crucial |
255 | # |
b7254ae2 |
256 | - source maint/travis-ci_scripts/10_before_install.bash |
257 | |
258 | install: |
259 | # Build and switch to a custom perl if requested |
260 | # Configure the perl env, preinstall some generic toolchain parts |
261 | # |
a61771df |
262 | # this is an exporter - sourcing it is crucial |
263 | # |
b7254ae2 |
264 | - source maint/travis-ci_scripts/20_install.bash |
265 | |
a61771df |
266 | ### |
267 | ### From this point on -e is *unset*, rely on travis' error handling |
268 | ### |
269 | - set +e |
270 | |
b7254ae2 |
271 | before_script: |
272 | # Preinstall/install deps based on envvars/CLEANTEST |
273 | # |
a61771df |
274 | # need to invoke the after_failure script manually |
275 | # because 'after_failure' runs only after 'script' fails |
276 | # |
277 | - maint/getstatus maint/travis-ci_scripts/30_before_script.bash || ( maint/travis-ci_scripts/50_after_failure.bash && /bin/false ) |
b7254ae2 |
278 | |
279 | script: |
280 | # Run actual tests |
281 | # |
a61771df |
282 | - maint/getstatus maint/travis-ci_scripts/40_script.bash |
b7254ae2 |
283 | |
284 | after_success: |
a61771df |
285 | # No tasks yet |
286 | # |
287 | # - maint/getstatus maint/travis-ci_scripts/50_after_success.bash |
b7254ae2 |
288 | |
289 | after_failure: |
a61771df |
290 | # Final sysinfo printout on fail |
b7254ae2 |
291 | # |
a61771df |
292 | - maint/getstatus maint/travis-ci_scripts/50_after_failure.bash |
b7254ae2 |
293 | |
294 | after_script: |
295 | # No tasks yet |
296 | # |
a61771df |
297 | #- maint/getstatus maint/travis-ci_scripts/60_after_script.bash |