-
Notifications
You must be signed in to change notification settings - Fork 32
/
.travis.yml
300 lines (257 loc) · 8.06 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
# Some overall notes on how this works
#
# * We smoke using the system provided latest, and custom built "oddball perls"
# The reason for not having a blanket matrix is to conserve travis resources
# as a full DBIC depchain isn't cheap
#
# * Minimum perl officially supported by DBIC is 5.8.3. This *includes* the
# basic depchain. On failure either attempt to fix it or bring it to the
# attention of ribasushi. *DO NOT* disable 5.8 testing - it is here for a
# reason
#
# * The matrix is built from two main modes - CLEANTEST = [true|false].
# - In the first case we test with minimal deps available, and skip everything
# listed in DBIC::OptDesps. The modules are installed with classic CPAN
# invocations and are *fully tested*. In other words we simulate what would
# happen if a user tried to install on a just-compiled virgin perl
# - Without CLEANTEST we bring the armada of RDBMS and install the maximum
# possible set of deps *without testing them*. This ensures we stay within
# a reasonable build-time and still run as many of our tests as possible
#
# * The perl builds and the DBIC tests run under NUMTHREADS number of threads.
# The testing of dependencies under CLEANTEST runs single-threaded, at least
# until we fix our entire dep-chain to safely pass under -j
#
# * The way .travis.yml is fed to the command controller is idiotic - it
# makes using multiline `bash -c` statements impossible. Therefore to
# aid readability (our travis logic is rather complex), the bulk of
# functionality is moved to scripts. More about the problem (and the
# WONTFIX "explanation") here: https://github.com/travis-ci/travis-ci/issues/497
#
#
# Smoke all branches except for blocked* and wip/*
#
# Additionally master does not smoke with bleadperl
# ( implemented in maint/travis-ci_scripts/10_before_install.bash )
#
branches:
except:
- /^wip\//
- /^blocked/
x_disabled_notifications:
irc:
channels:
- "irc.perl.org#dbic-smoke"
template:
- "%{branch}#%{build_number} by %{author}: %{message} (%{build_url})"
on_success: change
on_failure: always
use_notice: true
email:
recipients:
# Temporary - if it proves to be too noisy, we'll shut it off
on_success: change
on_failure: always
# FIXME - This stuff is not yet available for free OSS accounts, sadpanda
# First paragrah on http://about.travis-ci.org/docs/user/caching/
#cache:
# apt: true
# directories:
# - /var/cache/apt/archives
language: perl
perl:
- 5.24-extras
- 5.24
- 5.22-extras
- 5.22
env:
- CLEANTEST=false DBICTEST_DB2=true
- CLEANTEST=false DBICTEST_ORA=true
- CLEANTEST=false DBICTEST_FIREBIRD=true
- CLEANTEST=false DBICTEST_MYSQL_INNODB=1
- CLEANTEST=true
matrix:
fast_finish: false
include:
# this particular perl is quite widespread
- perl: 5.8.8_thr_mb
env:
- CLEANTEST=true
- BREWOPTS="-Duseithreads -Dusemorebits"
- BREWVER=5.8.8
# so is this one (test a sane CPAN.pm)
- perl: 5.12.4_thr_mb
env:
- CLEANTEST=true
- BREWOPTS="-Duseithreads -Dusemorebits"
- BREWVER=5.12.4
# this is the perl suse ships
- perl: 5.10.0_thr_dbg
env:
- CLEANTEST=true
- BREWOPTS="-DDEBUGGING -Duseithreads"
- BREWVER=5.10.0
# CLEANTEST of minimum supported
- perl: 5.8.3_nt_mb
env:
- CLEANTEST=true
- BREWOPTS="-Dusemorebits"
- BREWVER=5.8.3
# Full Test of minimum supported with threads
- perl: 5.8.5_thr
env:
- CLEANTEST=false
- BREWOPTS="-Duseithreads"
- BREWVER=5.8.5
- DBICTEST_MYSQL_INNODB=1
# Full Test of minimum supported without threads
- perl: 5.8.3_nt
env:
- CLEANTEST=false
- BREWOPTS=""
- BREWVER=5.8.3
- DBICTEST_MYSQL_INNODB=1
###
# some permutations of tracing and envvar poisoning
- perl: 5.16.2_thr_mb
env:
- CLEANTEST=false
- POISON_ENV=true
- DBIC_TRACE=1
- DBIC_MULTICREATE_DEBUG=0
- DBICTEST_MYSQL_INNODB=1
- BREWOPTS="-Duseithreads -Dusemorebits"
- BREWVER=5.16.2
- perl: 5.18
env:
- CLEANTEST=false
- POISON_ENV=true
- DBIC_TRACE_PROFILE=console
- perl: 5.8
env:
- CLEANTEST=true
- POISON_ENV=true
- DBIC_TRACE=1
- DBICTEST_MYSQL_INNODB=1
- perl: 5.18
env:
- CLEANTEST=false
- POISON_ENV=true
- DBIC_TRACE=1
- DBIC_TRACE_PROFILE=console_monochrome
- DBIC_MULTICREATE_DEBUG=0
- DBICTEST_MYSQL_INNODB=1
###
# Start of the allow_failures block
# old threaded with blead CPAN
- perl: devcpan_5.8.7_thr
env:
- CLEANTEST=true
- BREWOPTS="-Duseithreads"
- BREWVER=5.8.7
- DEVREL_DEPS=true
# 5.10.0 threaded with blead CPAN
- perl: devcpan_5.10.0_thr_mb
env:
- CLEANTEST=true
- BREWOPTS="-Duseithreads -Dusemorebits"
- BREWVER=5.10.0
- DEVREL_DEPS=true
# 5.12.2 with blead CPAN
- perl: devcpan_5.12.2_thr
env:
- CLEANTEST=true
- BREWOPTS="-Duseithreads"
- BREWVER=5.12.2
- DEVREL_DEPS=true
# recentish threaded stable with blead CPAN
- perl: devcpan_5.18.2_thr_mb
env:
- CLEANTEST=false
- BREWOPTS="-Duseithreads -Dusemorebits"
- BREWVER=5.18.2
- DEVREL_DEPS=true
- DBICTEST_MYSQL_INNODB=1
# bleadperl with stock CPAN, full depchain test
- perl: bleadperl
env:
- CLEANTEST=true
- BREWVER=blead
# bleadperl with blead CPAN
- perl: devcpan_bleadperl_thr_mb
env:
- CLEANTEST=false
- BREWOPTS="-Duseithreads -Dusemorebits"
- BREWVER=blead
- DEVREL_DEPS=true
- DBICTEST_MYSQL_INNODB=1
# which ones of the above can fail
allow_failures:
# these run with various dev snapshots - allowed to fail
- perl: devcpan_5.8.7_thr
- perl: devcpan_5.10.0_thr_mb
- perl: devcpan_5.12.2_thr
- perl: devcpan_5.18.2_thr_mb
- perl: bleadperl
- perl: devcpan_bleadperl_thr_mb
# Several upstream deps are flaky on 5.8.3
- perl: 5.8.3_nt
- perl: 5.8.3_nt_mb
# DBI fails on threaded 5.10.0
- perl: 5.10.0_thr_dbg
# namespace::clean breaks on threaded 5.8.8
# https://rt.cpan.org/Ticket/Display.html?id=107343
- perl: 5.8.8_thr_mb
# sourcing the files is *EXTREMELY* important - otherwise
# no envvars will survive
# the entire run times out after 50 minutes, or after 5 minutes without
# console output
before_install:
# common functions for all run phases below
#
# this is an exporter - sourcing it is crucial
# among other things it also sets -e
#
- source maint/travis-ci_scripts/common.bash
# Sets global envvars, downloads/configures debs based on CLEANTEST
# Sets extra DBICTEST_* envvars
#
# this is an exporter - sourcing it is crucial
#
- source maint/travis-ci_scripts/10_before_install.bash
install:
# Build and switch to a custom perl if requested
# Configure the perl env, preinstall some generic toolchain parts
#
# this is an exporter - sourcing it is crucial
#
- source maint/travis-ci_scripts/20_install.bash
###
### From this point on -e is *unset*, rely on travis' error handling
###
- set +e
before_script:
# Preinstall/install deps based on envvars/CLEANTEST
#
# need to invoke the after_failure script manually
# because 'after_failure' runs only after 'script' fails
#
- maint/getstatus maint/travis-ci_scripts/30_before_script.bash || ( maint/travis-ci_scripts/50_after_failure.bash && /bin/false )
script:
# Run actual tests
#
- maint/getstatus maint/travis-ci_scripts/40_script.bash
after_success:
# No tasks yet
#
# - maint/getstatus maint/travis-ci_scripts/50_after_success.bash
after_failure:
# Final sysinfo printout on fail
#
- maint/getstatus maint/travis-ci_scripts/50_after_failure.bash
after_script:
# No tasks yet
#
#- maint/getstatus maint/travis-ci_scripts/60_after_script.bash