# {project}_{version}_{jobtype}
# liburcu_stable-0.8_build
#
# jobtypes:
# - build
# - portbuild
# - coverity
# - scan-build
# - pylint
- defaults:
name: liburcu
description: |
liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This
data synchronization library provides read-side access which scales
linearly with the number of cores. It does so by allowing multiples
copies of a given data structure to live at the same time, and by
monitoring the data structure accesses to detect grace periods after
which memory reclamation is possible.
liburcu-cds provides efficient data structures based on RCU and
lock-free algorithms. Those structures include hash tables, queues,
stacks, and doubly-linked lists.
Job is managed by Jenkins Job Builder.
project-type: freestyle
wrappers:
- ansicolor: &liburcu_wrapper_ansicolor_defaults
colormap: xterm
- timeout: &liburcu_wrapper_timeout_defaults
timeout: 90
fail: true
type: absolute
- timestamps
- workspace-cleanup
scm:
- git:
url: https://github.com/{github_user}/{github_name}.git
browser: githubweb
browser-url: https://github.com/{github_user}/{github_name}
branches:
- origin/{version}
basedir: src/liburcu
skip-tag: true
triggers:
- pollscm:
cron: "@hourly"
properties:
- inject:
properties-content: |
PROJECT_NAME=liburcu
- build-discarder:
num-to-keep: 10
artifact-num-to-keep: 2
- github:
url: https://github.com/{github_user}/{github_name}
## Anchors
- _liburcu_matrix_axes_defaults: &liburcu_matrix_axes_defaults
name: 'liburcu_matrix_axes_defaults'
project-type: matrix
node: 'master' # Applies only to matrix flyweight task
execution-strategy:
touchstone:
expr: '{touchstone}'
result: unstable
axes:
- axis:
type: slave
name: platform
values: '{obj:platforms}'
- axis:
type: user-defined
name: conf
values: '{obj:confs}'
- axis:
type: user-defined
name: build
values: '{obj:builds}'
- _liburcu_builders_defaults: &liburcu_builders_defaults
name: 'liburcu_builders_defaults'
builders:
!j2-yaml: |
{% if buildtype == 'winbuild' %}
- conditional-step:
condition-kind: strings-match
on-evaluation-failure: run
condition-string1: {{ '${{platform}}' }}
condition-string2: 'cygwin64'
steps:
- shell:
!include-raw-escape:
- scripts/common/cygwin64-shebang
- scripts/common/cygpath-prefix
- scripts/common/print.sh
- scripts/liburcu/build.sh
{% else %}
- shell:
!include-raw-escape:
- scripts/common/print.sh
- scripts/liburcu/build.sh
{% endif %}
- _liburcu_publishers_defaults: &liburcu_publishers_defaults
name: 'liburcu_publishers_defaults'
publishers:
- tap: &liburcu_publisher_tap_defaults
results: 'tap/**/*.log'
fail-if-no-results: true
failed-tests-mark-build-as-failure: true
include-comment-diagnostics: true
output-tap-to-console: false
todo-is-failure: false
- raw: &liburcu_publisher_warnings-ng_defaults
xml: |
false
false
true
false
0
0
LOW
true
true
false
true
false
1
TOTAL
WARNING
AGGREGATION_TOOLS
- archive: &liburcu_publisher_archive_defaults
artifacts: 'build/**,tap/**,log/**'
follow-symlinks: true
allow-empty: false
- workspace-cleanup: &liburcu_publisher_workspace_cleanup_defaults
clean-if:
- failure: false
- ircbot: &liburcu_publisher_ircbot_defaults
strategy: statechange-only
message-type: summary
matrix-notifier: only-parent
- email-ext: &liburcu_publisher_email_ext_defaults
recipients: '{obj:email_to}'
reply-to: ci-notification@lists.lttng.org
always: false
unstable: false
first-failure: true
first-unstable: true
not-built: false
aborted: false
regression: false
failure: false
second-failure: false
improvement: false
still-failing: false
success: false
fixed: false
fixed-unhealthy: true
still-unstable: false
pre-build: false
matrix-trigger: only-parent
send-to:
- recipients
## Templates
- job-template:
name: '{job_prefix}liburcu_{version}_{buildtype}'
defaults: liburcu
<<: *liburcu_matrix_axes_defaults
<<: *liburcu_builders_defaults
<<: *liburcu_publishers_defaults
- job-template:
name: dev_review_liburcu_{version}_{buildtype}
defaults: liburcu
concurrent: true
scm:
- git:
url: https://review.lttng.org/userspace-rcu
refspec: 'refs/changes/*:refs/changes/*'
branches:
- '$GERRIT_REFSPEC'
basedir: src/liburcu
skip-tag: true
triggers:
- gerrit:
trigger-on:
- comment-added-event:
approval-category: 'CI-Build'
approval-value: 1
projects:
- project-compare-type: 'PLAIN'
project-pattern: 'userspace-rcu'
branches:
- branch-compare-type: 'PLAIN'
branch-pattern: '{version}'
properties:
- inject:
properties-content: |
PROJECT_NAME=liburcu
- build-discarder:
days-to-keep: 1
- throttle:
option: 'category'
categories:
- 'gerrit-{buildtype}'
<<: *liburcu_matrix_axes_defaults
<<: *liburcu_builders_defaults
publishers:
- tap: *liburcu_publisher_tap_defaults
- raw: *liburcu_publisher_warnings-ng_defaults
- workspace-cleanup: *liburcu_publisher_workspace_cleanup_defaults
- job-template:
name: liburcu_{version}_scan-build
defaults: liburcu
node: 'deb12-amd64'
triggers:
- pollscm:
cron: "@daily"
builders:
- shell:
!include-raw-escape: scripts/common/scan-build.sh
publishers:
- html-publisher:
name: 'HTML Report'
dir: 'scan-build-archive/'
files: 'index.html'
- workspace-cleanup: *liburcu_publisher_workspace_cleanup_defaults
- ircbot: *liburcu_publisher_ircbot_defaults
- job-template:
name: liburcu_{version}_coverity
defaults: liburcu
node: 'deb12-amd64'
triggers:
- pollscm:
cron: "@daily"
wrappers:
- ansicolor: *liburcu_wrapper_ansicolor_defaults
- timeout: *liburcu_wrapper_timeout_defaults
- timestamps
- workspace-cleanup
- credentials-binding:
- username-password-separated:
credential-id: liburcu_coverity_token
username: COVERITY_SCAN_PROJECT_NAME
password: COVERITY_SCAN_TOKEN
builders:
- shell:
!include-raw-escape: scripts/common/coverity.sh
publishers:
- archive:
artifacts: 'analysis-results.tgz,cov-int/**'
allow-empty: false
- workspace-cleanup: *liburcu_publisher_workspace_cleanup_defaults
- ircbot: *liburcu_publisher_ircbot_defaults
## Views
- view-template:
name: 'Liburcu'
view-type: list
regex: 'liburcu[-_].*'
## Projects
- project:
name: liburcu
job_prefix: ''
github_user: urcu
github_name: userspace-rcu
email_to: 'ci-notification@lists.lttng.org, cc:mathieu.desnoyers@efficios.com'
version:
- stable-0.13
- stable-0.14
- master
jobs:
- '{job_prefix}liburcu_{version}_{buildtype}':
version: master
buildtype: linuxbuild
platforms: !!python/tuple [deb12-amd64]
builds: !!python/tuple [std, oot, dist]
confs: !!python/tuple [std, static, atomic-builtins, tls_fallback, debug-rcu]
touchstone: '(build == "std") && (conf == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
version: stable-0.14
buildtype: linuxbuild
platforms: !!python/tuple [deb12-amd64]
builds: !!python/tuple [std, oot, dist]
confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
touchstone: '(build == "std") && (conf == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
version: stable-0.13
buildtype: linuxbuild
platforms: !!python/tuple [deb12-amd64]
builds: !!python/tuple [std, oot, dist]
confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
touchstone: '(build == "std") && (conf == "std")'
# Common
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: build
platforms: !!python/tuple [bionic-amd64]
builds: !!python/tuple [std, oot, dist]
confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
touchstone: '(build == "std") && (conf == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: portbuild
platforms: !!python/tuple [deb12-armhf, deb12-arm64, deb12-ppc64el, deb12-i386]
builds: !!python/tuple [std]
confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
touchstone: '(build == "std") && (conf == "std") && (platform == "deb12-i386")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: slesbuild
platforms: !!python/tuple [sles12sp5-amd64, sles15sp4-amd64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: '(build == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: elbuild
platforms: !!python/tuple [el7-amd64, el8-amd64, el9-amd64, el7-arm64, el8-arm64, el9-arm64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: '(build == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: yoctobuild
platforms: !!python/tuple [yocto23-powerpcspe, yocto23-powerpc, yocto31-ppc64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: '(build == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: macosbuild
platforms: !!python/tuple [macos-amd64, macos-arm64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: '(build == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: winbuild
platforms: !!python/tuple [cygwin64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: '(build == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: freebsdbuild
platforms: !!python/tuple [freebsd-amd64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: '(build == "std")'
- 'liburcu_{version}_scan-build'
- 'liburcu_{version}_coverity':
version: master
- project:
name: liburcu-dev-upstream
job_prefix: 'dev_upstream_'
github_user: urcu
github_name: userspace-rcu
email_to: 'ci-notification@lists.lttng.org, cc:mathieu.desnoyers@efficios.com'
version:
- stable-0.9
- stable-0.10
- stable-0.11
- stable-0.12
jobs:
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: linuxbuild
platforms: !!python/tuple [deb12-amd64]
builds: !!python/tuple [std, oot, dist]
confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
touchstone: '(build == "std") && (conf == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: portbuild
platforms: !!python/tuple [deb12-armhf, deb12-arm64, deb12-ppc64el, deb12-i386]
builds: !!python/tuple [std]
confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
touchstone: '(build == "std") && (conf == "std") && (platform == "deb12-i386")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: slesbuild
platforms: !!python/tuple [sles12sp5-amd64, sles15sp4-amd64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: '(build == "std")'
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: elbuild
platforms: !!python/tuple [el7-amd64, el8-amd64, el9-amd64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: '(build == "std")'
- project:
name: review-liburcu
github_user: urcu
github_name: userspace-rcu
version:
- stable-0.13
- stable-0.14
- master
jobs:
- 'dev_review_liburcu_{version}_{buildtype}':
buildtype: linuxbuild
platforms: !!python/tuple [deb12-amd64]
builds: !!python/tuple [std, oot, dist]
confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
touchstone: '(build == "std")'
- 'dev_review_liburcu_{version}_{buildtype}':
buildtype: portbuild
platforms: !!python/tuple [deb12-armhf, deb12-arm64, deb12-ppc64el, deb12-i386]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: ''
- 'dev_review_liburcu_{version}_{buildtype}':
buildtype: winbuild
platforms: !!python/tuple [cygwin64]
builds: !!python/tuple [std]
confs: !!python/tuple [std]
touchstone: ''
- project:
name: babeltrace2-mjeanson
job_prefix: 'dev_mjeanson_'
github_user: urcu
github_name: userspace-rcu
email_to: "mjeanson@efficios.com"
version:
- master
jobs:
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: portbuild
platforms: !!python/tuple [sid-riscv64]
builds: !!python/tuple [std]
confs: !!python/tuple [std, static, tls_fallback, debug-rcu]
touchstone: ''
- '{job_prefix}liburcu_{version}_{buildtype}':
buildtype: build
platforms: !!python/tuple [deb12-amd64]
builds: !!python/tuple [std]
confs: !!python/tuple [std, agents, static, tls_fallback, debug-rcu]
touchstone: ''
- project:
name: liburcu-views
views:
- Liburcu