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 | # |
6d2b5c14 |
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 |
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 |
28 | # functionality is moved to a script. More about the problem (and the |
29 | # WONTFIX "explanation") here: https://github.com/travis-ci/travis-ci/issues/497 |
30 | # |
31 | |
d0b79c51 |
32 | # |
c299fd65 |
33 | # Smoke only specific branches to a) not overload the queue and b) not |
d70070c9 |
34 | # overspam the notification channels |
d0b79c51 |
35 | # |
c299fd65 |
36 | # Furthermore if the branch is ^topic/ - the custom compiled smokes will |
37 | # not run at all, again in order to conserve queue resources |
d0b79c51 |
38 | # |
39 | # Additionally bleadperl tests do not run on master (but do run on smoke/*) |
40 | # |
d70070c9 |
41 | branches: |
42 | only: |
43 | - master |
d70070c9 |
44 | - /^smoke\// |
c299fd65 |
45 | - /^topic\// |
d70070c9 |
46 | |
47 | notifications: |
48 | irc: |
49 | channels: |
50 | - "irc.perl.org#dbic-smoke" |
51 | template: |
52 | - "%{branch}#%{build_number} by %{author}: %{message} (%{build_url})" |
53 | on_success: change |
54 | on_failure: always |
55 | use_notice: true |
56 | |
57 | email: |
2af1c37d |
58 | recipients: |
59 | - ribasushi@cpan.org |
60 | # Temporary - if it proves to be too noisy, we'll shut it off |
ee896495 |
61 | #- dbix-class-devel@lists.scsys.co.uk |
2af1c37d |
62 | on_success: change |
63 | on_failure: change |
d70070c9 |
64 | |
915876d7 |
65 | language: perl |
d70070c9 |
66 | |
915876d7 |
67 | perl: |
d70070c9 |
68 | - "5.16" |
915876d7 |
69 | |
d70070c9 |
70 | env: |
71 | - CLEANTEST=false |
72 | - CLEANTEST=true |
dea888a6 |
73 | |
d70070c9 |
74 | matrix: |
75 | include: |
76 | # minimum supported with threads |
77 | - perl: 5.8.5_thr |
78 | env: |
79 | - CLEANTEST=false |
80 | - BREWOPTS="-Duseithreads" |
81 | - BREWVER=5.8.5 |
915876d7 |
82 | |
d70070c9 |
83 | # minimum supported without threads |
84 | - perl: 5.8.3_nt |
85 | env: |
86 | - CLEANTEST=false |
87 | - BREWOPTS="" |
88 | - BREWVER=5.8.3 |
915876d7 |
89 | |
d0b79c51 |
90 | # bleadperl |
91 | - perl: bleadperl_thr_mb |
92 | env: |
93 | - CLEANTEST=false |
94 | - BREWOPTS="-Duseithreads -Dusemorebits" |
95 | - BREWVER=blead |
96 | |
6d2b5c14 |
97 | # check CLEANTEST of minimum supported |
98 | - perl: 5.8.3_nt_mb |
99 | env: |
100 | - CLEANTEST=true |
101 | - BREWOPTS="-Dusemorebits" |
102 | - BREWVER=5.8.3 |
103 | |
d70070c9 |
104 | # this is the perl suse ships |
105 | - perl: 5.10.0_thr_dbg |
106 | env: |
107 | - CLEANTEST=true |
108 | - BREWOPTS="-DDEBUGGING -Duseithreads" |
109 | - BREWVER=5.10.0 |
110 | |
111 | # this particular perl is quite widespread |
112 | - perl: 5.8.8_thr_mb |
113 | env: |
114 | - CLEANTEST=true |
115 | - BREWOPTS="-Duseithreads -Dusemorebits" |
116 | - BREWVER=5.8.8 |
117 | |
d70070c9 |
118 | before_install: |
119 | # Do not make this part of the env-matrix |
120 | # different boxes we run on have different amount of hw threads |
121 | # hence why we need to query |
122 | # result is 1.5 times the physical threads |
123 | - export NUMTHREADS=$(( ( $(cut -f 2 -d '-' /sys/devices/system/cpu/online) + 1 ) * 15 / 10 )) |
124 | |
125 | install: |
126 | # Build and switch to a custom perl if requested |
127 | # Set the environment based on CLEANTEST |
128 | # Preinstall/install deps |
129 | # |
130 | # sourcing the file is *EXTREMELY* important - otherwise |
131 | # no envvars will survive |
132 | - source maint/travis-ci_prepare_env |
133 | |
134 | script: |
d70070c9 |
135 | - export HARNESS_TIMER=1 HARNESS_OPTIONS=c:j$NUMTHREADS |
c299fd65 |
136 | |
137 | # either a plain 'make test' OR a shuffled prove torture |
d70070c9 |
138 | # use the random order test plan unless CLEANTEST |
c299fd65 |
139 | # prepare_env may have short-circuited the test entirely |
140 | - test -n "$SHORT_CIRCUIT_SMOKE" || (test "$CLEANTEST" = "true" && make test || prove -lrswj$NUMTHREADS t xt) |