jjb: Add latency-tracker
[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: true
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: 'v2.6.36'
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
114 - job-template:
115 name: latency-tracker_{mversion}_build-{uversion}
116 defaults: latency-tracker
117 description: |
118 The LTTng modules provide Linux kernel tracing capability to the LTTng
119 2.0 tracer toolset.
120
121 This job will build the {mversion} branch against all Ubuntu {uversion}
122 released kernels, including the LTS backport kernels.
123
124 <p>Job is managed by Jenkins Job Builder.</p>
125
126 node: 'master'
127
128 parameters:
129 - string:
130 name: 'mversion'
131 default: '{mversion}'
132 description: 'The latency-tracker branch to build.'
133 - string:
134 name: 'maxConcurrentBuild'
135 default: '20'
136 description: 'The maximum number of concurrent child build to run.'
137 - string:
138 name: 'uversion'
139 default: '{uversion}'
140 description: 'The lowest kernel version to build.'
141 - string:
142 name: 'kgitrepo'
143 default: 'git://git-mirror.internal.efficios.com/git/ubuntu-{uversion}.git'
144 description: 'The linux kernel git repository url.'
145 - string:
146 name: 'kbuildjob'
147 default: 'latency-tracker_VERSION_param-build'
148 description: 'The parametrized job to use for child builds.'
149
150 builders:
151 - system-groovy:
152 command:
153 !include-raw-escape: scripts/latency-tracker/master-ubuntu.groovy
154
155 publishers:
156 - workspace-cleanup
157
158 - job-template:
159 name: latency-tracker_{mversion}_build-rt
160 defaults: latency-tracker
161 description: |
162 The LTTng modules provide Linux kernel tracing capability to the LTTng
163 2.0 tracer toolset.
164
165 This job will build the {mversion} branch against all Linutronix RT
166 kernels.
167
168 <p>Job is managed by Jenkins Job Builder.</p>
169
170 node: 'master'
171
172 parameters:
173 - string:
174 name: 'mversion'
175 default: '{mversion}'
176 description: 'The latency-tracker branch to build.'
177 - string:
178 name: 'maxConcurrentBuild'
179 default: '20'
180 description: 'The maximum number of concurrent child build to run.'
181 - string:
182 name: 'kverfloor'
183 default: 'v2.6.36-rt0-rebase'
184 description: 'The lowest kernel version to build.'
185 - string:
186 name: 'kgitrepo'
187 default: 'git://git-mirror.internal.efficios.com/kernel/rt/linux-rt-devel.git'
188 description: 'The linux kernel git repository url.'
189 - string:
190 name: 'kbuildjob'
191 default: 'latency-tracker_VERSION_param-build'
192 description: 'The parametrized job to use for child builds.'
193
194 builders:
195 - system-groovy:
196 command:
197 !include-raw-escape: scripts/latency-tracker/master-rt.groovy
198
199 publishers:
200 - workspace-cleanup
201
202 - job-template:
203 name: latency-tracker_VERSION_param-build
204 defaults: latency-tracker
205 description: |
206 This is a parametrized job used by 'master' jobs to build any combinations
207 of latency-tracker and linux kernel versions.
208
209 <p>Job is managed by Jenkins Job Builder.</p>
210
211 project-type: matrix
212 node: 'master' # Applies only to matrix flyweight task
213 axes:
214 - axis:
215 type: slave
216 name: arch
217 values: '{obj:arch}'
218
219 properties:
220 - build-discarder:
221 days-to-keep: 2
222
223 parameters:
224 - string:
225 name: 'mversion'
226 default: 'master'
227 description: 'The latency-tracker branch to build.'
228 - string:
229 name: 'kversion'
230 default: ''
231 description: 'The linux kernel git tag to build against.'
232 - string:
233 name: 'kgitrepo'
234 default: 'git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git'
235 description: 'The linux kernel git repository url.'
236
237 concurrent: true
238
239 scm:
240 - git:
241 url: git://github.com/efficios/latency-tracker.git
242 browser: githubweb
243 browser-url: https://github.com/efficios/latency-tracker
244 branches:
245 - "${{mversion}}"
246 skip-tag: true
247 basedir: src/latency-tracker
248
249 triggers:
250
251 builders:
252 - shell: |
253 git clone --depth=1 -b "$kversion" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
254 - shell:
255 !include-raw-escape: scripts/latency-tracker/param-build.sh
256
257 publishers:
258 - workspace-cleanup
259
260 - job-template:
261 name: latency-tracker_{mversion}_coverity
262 defaults: latency-tracker
263 node: 'x86-64'
264
265 triggers:
266 - pollscm:
267 cron: "@daily"
268
269 wrappers:
270 - workspace-cleanup
271 - timestamps
272 - ansicolor:
273 colormap: xterm
274 - credentials-binding:
275 - username-password-separated:
276 credential-id: latency-tracker_coverity_token
277 username: COVERITY_SCAN_PROJECT_NAME
278 password: COVERITY_SCAN_TOKEN
279
280 builders:
281 - shell: |
282 git clone --depth=1 -b v4.4 --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git src/linux
283 cd src/linux
284 make defconfig
285 sed -i "s/# CONFIG_KALLSYMS_ALL is not set/CONFIG_KALLSYMS_ALL=y/g" .config
286 make modules_prepare
287 - shell:
288 !include-raw-escape: scripts/common/coverity.sh
289
290 publishers:
291 - workspace-cleanup
292
293 - job-template:
294 name: latency-tracker_{mversion}_cppcheck
295 defaults: latency-tracker
296
297 triggers:
298 - pollscm:
299 cron: "@daily"
300
301 builders:
302 - shell: |
303 rm -f cppcheck.xml
304 cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/latency-tracker 2> cppcheck.xml
305
306 publishers:
307 - archive:
308 artifacts: 'cppcheck.xml'
309 allow-empty: false
310 - cppcheck:
311 pattern: 'cppcheck.xml'
312 - email:
313 recipients: 'ci-notification@lists.lttng.org'
314 notify-every-unstable-build: true
315 send-to-individuals: false
316
317 - job-template:
318 name: latency-tracker_{mversion}_sloccount
319 defaults: latency-tracker
320 description: |
321 The LTTng modules provide Linux kernel tracing capability to the LTTng
322 2.0 tracer toolset.
323
324 This job runs the sloccount utility and generates a trend report.
325
326 <p>Job is managed by Jenkins Job Builder.</p>
327
328 triggers:
329 - pollscm:
330 cron: "@daily"
331
332 builders:
333 - shell: |
334 cloc --by-file --xml --out=cloc.xml src/latency-tracker/
335
336 publishers:
337 - archive:
338 artifacts: 'cloc.xml'
339 allow-empty: false
340 - sloccount:
341 report-files: 'cloc.xml'
342
343
344 ## Project
345 - project:
346 name: latency-tracker
347 github_user: efficios
348 github_name: latency-tracker
349 mversion:
350 - master
351 jobs:
352 - 'latency-tracker_{mversion}_build-vanilla'
353 - 'latency-tracker_{mversion}_build-rt':
354 # - 'latency-tracker_{mversion}_build-{uversion}':
355 # uversion:
356 # - xenial
357 - 'latency-tracker_VERSION_param-build':
358 arch: !!python/tuple [x86-32, x86-64]
359 - 'latency-tracker_{mversion}_cppcheck'
360 - 'latency-tracker_{mversion}_sloccount':
361 mversion: master
362 # - 'latency-tracker_{mversion}_coverity':
363 # mversion: master
This page took 0.038524 seconds and 4 git commands to generate.