jjb: Allow pulling artifacts from unstable jobs
[lttng-ci.git] / jobs / latency-tracker.yaml
1 ---
2 - defaults:
3 name: latency-tracker
4 description: |
5
6 <p>Job is managed by Jenkins Job Builder.</p>
7
8 project-type: freestyle
9
10 wrappers:
11 - workspace-cleanup
12 - timestamps
13 - ansicolor
14
15 scm:
16 - git:
17 url: git://github.com/{github_user}/{github_name}.git
18 browser: githubweb
19 browser-url: https://github.com/{github_user}/{github_name}
20 branches:
21 - "{mversion}"
22 shallow-clone: true
23 skip-tag: true
24 fastpoll: true
25 basedir: src/latency-tracker
26
27 triggers:
28 - pollscm:
29 cron: "@hourly"
30
31 properties:
32 - build-discarder:
33 num-to-keep: 2
34 - github:
35 url: https://github.com/{github_user}/{github_name}
36
37
38 ## Templates
39 - job-template:
40 name: latency-tracker_{mversion}_{kversion}_{buildtype}
41 defaults: latency-tracker
42
43 project-type: matrix
44 node: 'master' # Applies only to matrix flyweight task
45 axes:
46 - axis:
47 type: slave
48 name: arch
49 values: '{obj:arch}'
50
51 builders:
52 - copyartifact:
53 project: kernel_{kversion}_{buildtype}/arch=$arch
54 which-build: last-successful
55 stable: false
56 filter: 'build/**'
57 target: 'deps/linux'
58 do-not-fingerprint: true
59 - shell: |
60 git clone --depth=1 -b "v{kversion}" --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git src/linux
61 - shell:
62 !include-raw-escape: scripts/latency-tracker/build.sh
63
64 publishers:
65 - archive:
66 artifacts: 'build/**'
67 allow-empty: false
68 - workspace-cleanup
69
70 - job-template:
71 name: latency-tracker_{mversion}_build-vanilla
72 defaults: latency-tracker
73 description: |
74 The LTTng modules provide Linux kernel tracing capability to the LTTng
75 2.0 tracer toolset.
76
77 This job will build the {mversion} branch against all stable vanilla
78 kernel tags.
79
80 <p>Job is managed by Jenkins Job Builder.</p>
81
82 node: 'master'
83
84 parameters:
85 - string:
86 name: 'mversion'
87 default: '{mversion}'
88 description: 'The latency-tracker branch to build.'
89 - string:
90 name: 'maxConcurrentBuild'
91 default: '20'
92 description: 'The maximum number of concurrent child build to run.'
93 - string:
94 name: 'kverfloor'
95 default: 'v3.12'
96 description: 'The lowest kernel version to build.'
97 - string:
98 name: 'kgitrepo'
99 default: 'git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git'
100 description: 'The linux kernel git repository url.'
101 - string:
102 name: 'kbuildjob'
103 default: 'latency-tracker_VERSION_param-build'
104 description: 'The parametrized job to use for child builds.'
105
106 builders:
107 - system-groovy:
108 command:
109 !include-raw-escape: scripts/latency-tracker/master-vanilla.groovy
110
111 publishers:
112 - workspace-cleanup
113 - email-ext:
114 recipients: jdesfossez@efficios.com
115
116 - job-template:
117 name: latency-tracker_{mversion}_build-{uversion}
118 defaults: latency-tracker
119 description: |
120 The LTTng modules provide Linux kernel tracing capability to the LTTng
121 2.0 tracer toolset.
122
123 This job will build the {mversion} branch against all Ubuntu {uversion}
124 released kernels, including the LTS backport kernels.
125
126 <p>Job is managed by Jenkins Job Builder.</p>
127
128 node: 'master'
129
130 parameters:
131 - string:
132 name: 'mversion'
133 default: '{mversion}'
134 description: 'The latency-tracker branch to build.'
135 - string:
136 name: 'maxConcurrentBuild'
137 default: '20'
138 description: 'The maximum number of concurrent child build to run.'
139 - string:
140 name: 'uversion'
141 default: '{uversion}'
142 description: 'The lowest kernel version to build.'
143 - string:
144 name: 'kgitrepo'
145 default: 'git://git-mirror.internal.efficios.com/git/ubuntu-{uversion}.git'
146 description: 'The linux kernel git repository url.'
147 - string:
148 name: 'kbuildjob'
149 default: 'latency-tracker_VERSION_param-build'
150 description: 'The parametrized job to use for child builds.'
151
152 builders:
153 - system-groovy:
154 command:
155 !include-raw-escape: scripts/latency-tracker/master-ubuntu.groovy
156
157 publishers:
158 - workspace-cleanup
159 - email-ext:
160 recipients: jdesfossez@efficios.com
161
162 - job-template:
163 name: latency-tracker_{mversion}_build-rt
164 defaults: latency-tracker
165 description: |
166 The LTTng modules provide Linux kernel tracing capability to the LTTng
167 2.0 tracer toolset.
168
169 This job will build the {mversion} branch against all Linutronix RT
170 kernels.
171
172 <p>Job is managed by Jenkins Job Builder.</p>
173
174 node: 'master'
175
176 parameters:
177 - string:
178 name: 'mversion'
179 default: '{mversion}'
180 description: 'The latency-tracker branch to build.'
181 - string:
182 name: 'maxConcurrentBuild'
183 default: '20'
184 description: 'The maximum number of concurrent child build to run.'
185 - string:
186 name: 'kverfloor'
187 default: 'v2.6.36-rt0-rebase'
188 description: 'The lowest kernel version to build.'
189 - string:
190 name: 'kgitrepo'
191 default: 'git://git-mirror.internal.efficios.com/kernel/rt/linux-rt-devel.git'
192 description: 'The linux kernel git repository url.'
193 - string:
194 name: 'kbuildjob'
195 default: 'latency-tracker_VERSION_param-build'
196 description: 'The parametrized job to use for child builds.'
197
198 builders:
199 - system-groovy:
200 command:
201 !include-raw-escape: scripts/latency-tracker/master-rt.groovy
202
203 publishers:
204 - workspace-cleanup
205 - email-ext:
206 recipients: jdesfossez@efficios.com
207
208 - job-template:
209 name: latency-tracker_VERSION_param-build
210 defaults: latency-tracker
211 description: |
212 This is a parametrized job used by 'master' jobs to build any combinations
213 of latency-tracker and linux kernel versions.
214
215 <p>Job is managed by Jenkins Job Builder.</p>
216
217 project-type: matrix
218 node: 'master' # Applies only to matrix flyweight task
219 axes:
220 - axis:
221 type: slave
222 name: arch
223 values: '{obj:arch}'
224
225 properties:
226 - build-discarder:
227 days-to-keep: 2
228
229 parameters:
230 - string:
231 name: 'mversion'
232 default: 'master'
233 description: 'The latency-tracker branch to build.'
234 - string:
235 name: 'kversion'
236 default: ''
237 description: 'The linux kernel git tag to build against.'
238 - string:
239 name: 'kgitrepo'
240 default: 'git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git'
241 description: 'The linux kernel git repository url.'
242
243 concurrent: true
244
245 scm:
246 - git:
247 url: git://github.com/efficios/latency-tracker.git
248 browser: githubweb
249 browser-url: https://github.com/efficios/latency-tracker
250 branches:
251 - "${{mversion}}"
252 skip-tag: true
253 basedir: src/latency-tracker
254
255 triggers:
256
257 builders:
258 - shell: |
259 git clone --depth=1 -b "$kversion" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
260 - shell:
261 !include-raw-escape: scripts/latency-tracker/param-build.sh
262
263 publishers:
264 - workspace-cleanup
265
266 - job-template:
267 name: latency-tracker_{mversion}_coverity
268 defaults: latency-tracker
269 node: 'x86-64'
270
271 triggers:
272 - pollscm:
273 cron: "@daily"
274
275 wrappers:
276 - workspace-cleanup
277 - timestamps
278 - ansicolor:
279 colormap: xterm
280 - credentials-binding:
281 - username-password-separated:
282 credential-id: latency-tracker_coverity_token
283 username: COVERITY_SCAN_PROJECT_NAME
284 password: COVERITY_SCAN_TOKEN
285
286 builders:
287 - shell: |
288 git clone --depth=1 -b v4.8 --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git src/linux
289 cd src/linux
290 make defconfig
291 sed -i "s/# CONFIG_KALLSYMS_ALL is not set/CONFIG_KALLSYMS_ALL=y/g" .config
292 make modules_prepare
293 - shell:
294 !include-raw-escape: scripts/common/coverity.sh
295
296 publishers:
297 - workspace-cleanup
298
299 - job-template:
300 name: latency-tracker_{mversion}_cppcheck
301 defaults: latency-tracker
302
303 triggers:
304 - pollscm:
305 cron: "@daily"
306
307 builders:
308 - shell: |
309 rm -f cppcheck.xml
310 cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/latency-tracker 2> cppcheck.xml
311
312 publishers:
313 - archive:
314 artifacts: 'cppcheck.xml'
315 allow-empty: false
316 - cppcheck:
317 pattern: 'cppcheck.xml'
318 - email:
319 recipients: 'ci-notification@lists.lttng.org'
320 notify-every-unstable-build: true
321 send-to-individuals: false
322
323 - job-template:
324 name: latency-tracker_{mversion}_sloccount
325 defaults: latency-tracker
326 description: |
327 The LTTng modules provide Linux kernel tracing capability to the LTTng
328 2.0 tracer toolset.
329
330 This job runs the sloccount utility and generates a trend report.
331
332 <p>Job is managed by Jenkins Job Builder.</p>
333
334 triggers:
335 - pollscm:
336 cron: "@daily"
337
338 builders:
339 - shell: |
340 cloc --by-file --xml --out=cloc.xml src/latency-tracker/
341
342 publishers:
343 - archive:
344 artifacts: 'cloc.xml'
345 allow-empty: false
346 - sloccount:
347 report-files: 'cloc.xml'
348
349
350 ## Project
351 - project:
352 name: latency-tracker
353 github_user: efficios
354 github_name: latency-tracker
355 mversion:
356 - master
357 jobs:
358 - 'latency-tracker_{mversion}_build-vanilla'
359 - 'latency-tracker_{mversion}_build-rt':
360 - 'latency-tracker_{mversion}_build-{uversion}':
361 uversion:
362 - xenial
363 - 'latency-tracker_VERSION_param-build':
364 arch: !!python/tuple [x86-32, x86-64]
365 - 'latency-tracker_{mversion}_cppcheck'
366 - 'latency-tracker_{mversion}_sloccount':
367 mversion: master
368 - 'latency-tracker_{mversion}_coverity':
369 mversion: master
This page took 0.083 seconds and 5 git commands to generate.