forked from Perl5/DBIx-Class
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
179 lines (154 loc) · 4.93 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
# 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/
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: change
language: perl
perl:
- "5.16"
env:
- CLEANTEST=false
- CLEANTEST=true
matrix:
include:
# bleadperl
- perl: bleadperl_thr_mb
env:
- CLEANTEST=false
- BREWOPTS="-Duseithreads -Dusemorebits"
- BREWVER=blead
# minimum supported with threads
- perl: 5.8.5_thr
env:
- CLEANTEST=false
- BREWOPTS="-Duseithreads"
- BREWVER=5.8.5
- DBIC_TRACE_PROFILE=console
# minimum supported without threads
- perl: 5.8.3_nt
env:
- CLEANTEST=false
- BREWOPTS=""
- BREWVER=5.8.3
- DBIC_TRACE_PROFILE=console_monochrome
# check CLEANTEST of minimum supported
- perl: 5.8.3_nt_mb
env:
- CLEANTEST=true
- BREWOPTS="-Dusemorebits"
- BREWVER=5.8.3
# this is the perl suse ships
- perl: 5.10.0_thr_dbg
env:
- CLEANTEST=true
- BREWOPTS="-DDEBUGGING -Duseithreads"
- BREWVER=5.10.0
# this particular perl is quite widespread
- perl: 5.8.8_thr_mb
env:
- CLEANTEST=true
- BREWOPTS="-Duseithreads -Dusemorebits"
- BREWVER=5.8.8
# some permutations of tracing envvar testing
- perl: 5.16
env:
- CLEANTEST=false
- DBIC_TRACE=1
- perl: 5.16
env:
- CLEANTEST=true
- DBIC_TRACE=1
- DBIC_TRACE_PROFILE=console
- perl: 5.16
env:
- CLEANTEST=false
- DBIC_TRACE=1
- DBIC_TRACE_PROFILE=console_monochrome
# 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:
# Sets global envvars, downloads/configures debs based on CLEANTEST
# Sets extra DBICTEST_* envvars
#
- 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
#
- source maint/travis-ci_scripts/20_install.bash
before_script:
# Preinstall/install deps based on envvars/CLEANTEST
#
- source maint/travis-ci_scripts/30_before_script.bash
script:
# Run actual tests
#
- source maint/travis-ci_scripts/40_script.bash
after_success:
# Check if we can assemble a dist properly if not in CLEANTEST
#
- source maint/travis-ci_scripts/50_after_success.bash
after_failure:
# No tasks yet
#
#- source maint/travis-ci_scripts/50_after_failure.bash
after_script:
# No tasks yet
#
#- source maint/travis-ci_scripts/60_after_script.bash
# if we do not unset this before we terminate the travis teardown will
# mark the entire job as failed
- set +e