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