jjb: liburcu: split gerrit jobs by branch
[lttng-ci.git] / jobs / liburcu.yaml
1 # {project}_{version}_{jobtype}
2 # liburcu_stable-0.8_build
3 #
4 # jobtypes:
5 # - build
6 # - portbuild
7 # - coverity
8 # - scan-build
9 # - pylint
10
11 - defaults:
12 name: liburcu
13 description: |
14 liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This
15 data synchronization library provides read-side access which scales
16 linearly with the number of cores. It does so by allowing multiples
17 copies of a given data structure to live at the same time, and by
18 monitoring the data structure accesses to detect grace periods after
19 which memory reclamation is possible.
20
21 liburcu-cds provides efficient data structures based on RCU and
22 lock-free algorithms. Those structures include hash tables, queues,
23 stacks, and doubly-linked lists.
24
25 <p>Job is managed by Jenkins Job Builder.</p>
26
27 project-type: freestyle
28
29 wrappers:
30 - ansicolor: &liburcu_wrapper_ansicolor_defaults
31 colormap: xterm
32 - timeout: &liburcu_wrapper_timeout_defaults
33 timeout: 90
34 fail: true
35 type: absolute
36 - timestamps
37 - workspace-cleanup
38
39 scm:
40 - git:
41 url: https://github.com/{github_user}/{github_name}.git
42 browser: githubweb
43 browser-url: https://github.com/{github_user}/{github_name}
44 branches:
45 - origin/{version}
46 basedir: src/liburcu
47 skip-tag: true
48
49 triggers:
50 - pollscm:
51 cron: "@hourly"
52
53 properties:
54 - inject:
55 properties-content: |
56 PROJECT_NAME=liburcu
57 - build-discarder:
58 num-to-keep: 10
59 artifact-num-to-keep: 2
60 - github:
61 url: https://github.com/{github_user}/{github_name}
62
63
64 ## Anchors
65 - _liburcu_matrix_axes_defaults: &liburcu_matrix_axes_defaults
66 name: 'liburcu_matrix_axes_defaults'
67 project-type: matrix
68 node: 'master' # Applies only to matrix flyweight task
69 execution-strategy:
70 touchstone:
71 expr: '{touchstone}'
72 result: unstable
73 axes:
74 - axis:
75 type: slave
76 name: platform
77 values: '{obj:platforms}'
78 - axis:
79 type: user-defined
80 name: conf
81 values: '{obj:confs}'
82 - axis:
83 type: user-defined
84 name: build
85 values: '{obj:builds}'
86
87 - _liburcu_builders_defaults: &liburcu_builders_defaults
88 name: 'liburcu_builders_defaults'
89 builders:
90 !j2-yaml: |
91 {% if buildtype == 'winbuild' %}
92 - conditional-step:
93 condition-kind: strings-match
94 on-evaluation-failure: run
95 condition-string1: {{ '${{platform}}' }}
96 condition-string2: 'cygwin64'
97 steps:
98 - shell:
99 !include-raw-escape:
100 - scripts/common/cygwin64-shebang
101 - scripts/common/cygpath-prefix
102 - scripts/common/print.sh
103 - scripts/liburcu/build.sh
104 {% else %}
105 - shell:
106 !include-raw-escape:
107 - scripts/common/print.sh
108 - scripts/liburcu/build.sh
109 {% endif %}
110
111 - _liburcu_publishers_defaults: &liburcu_publishers_defaults
112 name: 'liburcu_publishers_defaults'
113 publishers:
114 - tap: &liburcu_publisher_tap_defaults
115 results: 'tap/**/*.log'
116 fail-if-no-results: true
117 failed-tests-mark-build-as-failure: true
118 include-comment-diagnostics: true
119 output-tap-to-console: false
120 todo-is-failure: false
121 - raw: &liburcu_publisher_warnings-ng_defaults
122 xml: |
123 <io.jenkins.plugins.analysis.core.steps.IssuesRecorder plugin="warnings-ng">
124 <analysisTools>
125 <io.jenkins.plugins.analysis.warnings.Gcc4>
126 <id/>
127 <name/>
128 <jenkins plugin="plugin-util-api"/>
129 <pattern/>
130 <reportEncoding/>
131 <skipSymbolicLinks>false</skipSymbolicLinks>
132 </io.jenkins.plugins.analysis.warnings.Gcc4>
133 </analysisTools>
134 <sourceCodeEncoding/>
135 <sourceDirectory/>
136 <sourceDirectories/>
137 <ignoreQualityGate>false</ignoreQualityGate>
138 <ignoreFailedBuilds>true</ignoreFailedBuilds>
139 <failOnError>false</failOnError>
140 <healthy>0</healthy>
141 <unhealthy>0</unhealthy>
142 <minimumSeverity plugin="analysis-model-api">
143 <name>LOW</name>
144 </minimumSeverity>
145 <filters/>
146 <isEnabledForFailure>true</isEnabledForFailure>
147 <isAggregatingResults>true</isAggregatingResults>
148 <isBlameDisabled>false</isBlameDisabled>
149 <skipPublishingChecks>true</skipPublishingChecks>
150 <publishAllIssues>false</publishAllIssues>
151 <qualityGates>
152 <io.jenkins.plugins.analysis.core.util.QualityGate>
153 <threshold>1</threshold>
154 <type>TOTAL</type>
155 <status>WARNING</status>
156 </io.jenkins.plugins.analysis.core.util.QualityGate>
157 </qualityGates>
158 <trendChartType>AGGREGATION_TOOLS</trendChartType>
159 <scm/>
160 </io.jenkins.plugins.analysis.core.steps.IssuesRecorder>
161 - archive: &liburcu_publisher_archive_defaults
162 artifacts: 'build/**,tap/**,log/**'
163 allow-empty: false
164 - workspace-cleanup: &liburcu_publisher_workspace_cleanup_defaults
165 clean-if:
166 - failure: false
167 - ircbot: &liburcu_publisher_ircbot_defaults
168 strategy: statechange-only
169 message-type: summary-scm
170 matrix-notifier: only-configurations
171 - email-ext: &liburcu_publisher_email_ext_defaults
172 recipients: '{obj:email_to}'
173 reply-to: ci-notification@lists.lttng.org
174 always: false
175 unstable: false
176 first-failure: true
177 first-unstable: true
178 not-built: false
179 aborted: false
180 regression: false
181 failure: false
182 second-failure: false
183 improvement: false
184 still-failing: false
185 success: false
186 fixed: false
187 fixed-unhealthy: true
188 still-unstable: false
189 pre-build: false
190 matrix-trigger: only-parent
191 send-to:
192 - recipients
193
194 ## Templates
195 - job-template:
196 name: '{job_prefix}liburcu_{version}_{buildtype}'
197 defaults: liburcu
198
199 <<: *liburcu_matrix_axes_defaults
200 <<: *liburcu_builders_defaults
201 <<: *liburcu_publishers_defaults
202
203 - job-template:
204 name: dev_review_liburcu_{version}_{buildtype}
205 defaults: liburcu
206 concurrent: true
207
208 scm:
209 - git:
210 url: https://review.lttng.org/userspace-rcu
211 refspec: 'refs/changes/*:refs/changes/*'
212 branches:
213 - '$GERRIT_REFSPEC'
214 basedir: src/liburcu
215 skip-tag: true
216
217 triggers:
218 - gerrit:
219 trigger-on:
220 - comment-added-event:
221 approval-category: 'CI-Build'
222 approval-value: 1
223 projects:
224 - project-compare-type: 'PLAIN'
225 project-pattern: 'userspace-rcu'
226 branches:
227 - branch-compare-type: 'PLAIN'
228 branch-pattern: '{version}'
229
230 properties:
231 - inject:
232 properties-content: |
233 PROJECT_NAME=liburcu
234 - build-discarder:
235 days-to-keep: 1
236 - throttle:
237 option: 'category'
238 categories:
239 - 'gerrit-{buildtype}'
240
241 <<: *liburcu_matrix_axes_defaults
242 <<: *liburcu_builders_defaults
243
244 publishers:
245 - tap: *liburcu_publisher_tap_defaults
246 - raw: *liburcu_publisher_warnings-ng_defaults
247 - workspace-cleanup: *liburcu_publisher_workspace_cleanup_defaults
248
249 - job-template:
250 name: liburcu_{version}_scan-build
251 defaults: liburcu
252 node: 'bionic-amd64'
253
254 triggers:
255 - pollscm:
256 cron: "@daily"
257
258 builders:
259 - shell:
260 !include-raw-escape: scripts/common/scan-build.sh
261
262 publishers:
263 - html-publisher:
264 name: 'HTML Report'
265 dir: 'scan-build-archive/'
266 files: 'index.html'
267 - workspace-cleanup: *liburcu_publisher_workspace_cleanup_defaults
268 - ircbot: *liburcu_publisher_ircbot_defaults
269
270 - job-template:
271 name: liburcu_{version}_coverity
272 defaults: liburcu
273 node: 'bionic-amd64'
274
275 triggers:
276 - pollscm:
277 cron: "@daily"
278
279 wrappers:
280 - ansicolor: *liburcu_wrapper_ansicolor_defaults
281 - timeout: *liburcu_wrapper_timeout_defaults
282 - timestamps
283 - workspace-cleanup
284 - credentials-binding:
285 - username-password-separated:
286 credential-id: liburcu_coverity_token
287 username: COVERITY_SCAN_PROJECT_NAME
288 password: COVERITY_SCAN_TOKEN
289
290 builders:
291 - shell:
292 !include-raw-escape: scripts/common/coverity.sh
293
294 publishers:
295 - archive:
296 artifacts: 'analysis-results.tgz,cov-int/**'
297 allow-empty: false
298 - workspace-cleanup: *liburcu_publisher_workspace_cleanup_defaults
299 - ircbot: *liburcu_publisher_ircbot_defaults
300
301
302 ## Views
303 - view-template:
304 name: 'Liburcu'
305 view-type: list
306 regex: 'liburcu[-_].*'
307
308
309 ## Projects
310 - project:
311 name: liburcu
312 job_prefix: ''
313 github_user: urcu
314 github_name: userspace-rcu
315 email_to: 'ci-notification@lists.lttng.org, cc:mathieu.desnoyers@efficios.com'
316 version:
317 - stable-0.13
318 - stable-0.14
319 - master
320 jobs:
321 - '{job_prefix}liburcu_{version}_{buildtype}':
322 buildtype: linuxbuild
323 platforms: !!python/tuple [jammy-amd64]
324 builds: !!python/tuple [std, oot, dist]
325 confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
326 touchstone: '(build == "std") && (conf == "std")'
327 - '{job_prefix}liburcu_{version}_{buildtype}':
328 buildtype: build
329 platforms: !!python/tuple [bionic-amd64]
330 builds: !!python/tuple [std, oot, dist]
331 confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
332 touchstone: '(build == "std") && (conf == "std")'
333 - '{job_prefix}liburcu_{version}_{buildtype}':
334 buildtype: portbuild
335 platforms: !!python/tuple [deb11-armhf, deb11-arm64, deb11-ppc64el, deb11-i386]
336 builds: !!python/tuple [std]
337 confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
338 touchstone: '(build == "std") && (conf == "std") && (platform == "deb11-i386")'
339 - '{job_prefix}liburcu_{version}_{buildtype}':
340 buildtype: slesbuild
341 platforms: !!python/tuple [sles12sp5-amd64, sles15sp4-amd64]
342 builds: !!python/tuple [std]
343 confs: !!python/tuple [std]
344 touchstone: '(build == "std")'
345 - '{job_prefix}liburcu_{version}_{buildtype}':
346 buildtype: elbuild
347 platforms: !!python/tuple [el7-amd64, el8-amd64, el9-amd64]
348 builds: !!python/tuple [std]
349 confs: !!python/tuple [std]
350 touchstone: '(build == "std")'
351 - '{job_prefix}liburcu_{version}_{buildtype}':
352 buildtype: yoctobuild
353 platforms: !!python/tuple [yocto23-powerpcspe, yocto23-powerpc, yocto31-ppc64]
354 builds: !!python/tuple [std]
355 confs: !!python/tuple [std]
356 touchstone: '(build == "std")'
357 - '{job_prefix}liburcu_{version}_{buildtype}':
358 buildtype: macosbuild
359 platforms: !!python/tuple [macos-amd64, macos-arm64]
360 builds: !!python/tuple [std]
361 confs: !!python/tuple [std]
362 touchstone: '(build == "std")'
363 - '{job_prefix}liburcu_{version}_{buildtype}':
364 buildtype: winbuild
365 platforms: !!python/tuple [cygwin64]
366 builds: !!python/tuple [std]
367 confs: !!python/tuple [std]
368 touchstone: '(build == "std")'
369 - '{job_prefix}liburcu_{version}_{buildtype}':
370 buildtype: freebsdbuild
371 platforms: !!python/tuple [freebsd-amd64]
372 builds: !!python/tuple [std]
373 confs: !!python/tuple [std]
374 touchstone: '(build == "std")'
375 - 'liburcu_{version}_scan-build'
376 - 'liburcu_{version}_coverity':
377 version: master
378
379
380 - project:
381 name: liburcu-dev-upstream
382 job_prefix: 'dev_upstream_'
383 github_user: urcu
384 github_name: userspace-rcu
385 email_to: 'ci-notification@lists.lttng.org, cc:mathieu.desnoyers@efficios.com'
386 version:
387 - stable-0.9
388 - stable-0.10
389 - stable-0.11
390 - stable-0.12
391 jobs:
392 - '{job_prefix}liburcu_{version}_{buildtype}':
393 buildtype: linuxbuild
394 platforms: !!python/tuple [jammy-amd64]
395 builds: !!python/tuple [std, oot, dist]
396 confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
397 touchstone: '(build == "std") && (conf == "std")'
398 - '{job_prefix}liburcu_{version}_{buildtype}':
399 buildtype: portbuild
400 platforms: !!python/tuple [deb11-armhf, deb11-arm64, deb11-ppc64el, deb11-i386]
401 builds: !!python/tuple [std]
402 confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
403 touchstone: '(build == "std") && (conf == "std") && (platform == "deb11-i386")'
404 - '{job_prefix}liburcu_{version}_{buildtype}':
405 buildtype: slesbuild
406 platforms: !!python/tuple [sles12sp5-amd64, sles15sp4-amd64]
407 builds: !!python/tuple [std]
408 confs: !!python/tuple [std]
409 touchstone: '(build == "std")'
410 - '{job_prefix}liburcu_{version}_{buildtype}':
411 buildtype: elbuild
412 platforms: !!python/tuple [el7-amd64, el8-amd64, el9-amd64]
413 builds: !!python/tuple [std]
414 confs: !!python/tuple [std]
415 touchstone: '(build == "std")'
416
417
418 - project:
419 name: review-liburcu
420 github_user: urcu
421 github_name: userspace-rcu
422 version:
423 - stable-0.13
424 - stable-0.14
425 - master
426 jobs:
427 - 'dev_review_liburcu_{version}_{buildtype}':
428 buildtype: build
429 platforms: !!python/tuple [bionic-amd64]
430 builds: !!python/tuple [std, oot, dist]
431 confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
432 touchstone: '(build == "std")'
433 - 'dev_review_liburcu_{version}_{buildtype}':
434 buildtype: portbuild
435 platforms: !!python/tuple [deb11-armhf, deb11-arm64, deb11-ppc64el, deb11-i386]
436 builds: !!python/tuple [std]
437 confs: !!python/tuple [std]
438 touchstone: ''
439 - 'dev_review_liburcu_{version}_{buildtype}':
440 buildtype: winbuild
441 platforms: !!python/tuple [cygwin64]
442 builds: !!python/tuple [std]
443 confs: !!python/tuple [std]
444 touchstone: ''
445
446
447 - project:
448 name: liburcu-views
449 views:
450 - Liburcu
This page took 0.039538 seconds and 5 git commands to generate.