# jobtypes:
# - build
# - portbuild
-# - cppcheck
# - coverity
# - scan-build
# - pylint
project-type: freestyle
- logrotate:
- daysToKeep: -1
- numToKeep: 2
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
-
wrappers:
- - workspace-cleanup
+ - ansicolor: &liburcu_wrapper_ansicolor_defaults
+ colormap: xterm
+ - timeout: &liburcu_wrapper_timeout_defaults
+ timeout: 90
+ fail: true
+ type: absolute
- timestamps
- - ansicolor
+ - workspace-cleanup
scm:
- git:
- url: https://github.com/urcu/userspace-rcu.git
+ url: https://github.com/{github_user}/{github_name}.git
browser: githubweb
- browser-url: https://github.com/urcu/userspace-rcu.git
+ browser-url: https://github.com/{github_user}/{github_name}
branches:
- origin/{version}
+ basedir: src/liburcu
+ skip-tag: true
triggers:
- - pollscm: "@hourly"
+ - 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/urcu/userspace-rcu/
-
+ url: https://github.com/{github_user}/{github_name}
-## Templates
-- job-template:
- name: liburcu_{version}_{buildtype}
- defaults: liburcu
+## Anchors
+- _liburcu_matrix_axes_defaults: &liburcu_matrix_axes_defaults
+ name: 'liburcu_matrix_axes_defaults'
project-type: matrix
- node: 'x86-32 || x86-64' # Applies only to matrix flyweight task
+ node: 'master' # Applies only to matrix flyweight task
+ execution-strategy:
+ touchstone:
+ expr: '{touchstone}'
+ result: unstable
axes:
- axis:
type: slave
- name: arch
- values: '{obj:arch}'
+ name: platform
+ values: '{obj:platforms}'
- axis:
type: user-defined
name: conf
- values:
- - std
- - static
- - tls_fallback
+ values: '{obj:confs}'
- axis:
type: user-defined
name: build
- values: '{obj: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/liburcu/build.sh
+ !include-raw-escape:
+ - scripts/common/print.sh
+ - scripts/liburcu/build.sh
+ {% endif %}
- # TODO: Scan for open tasks
+- _liburcu_publishers_defaults: &liburcu_publishers_defaults
+ name: 'liburcu_publishers_defaults'
publishers:
- - warnings:
- console-log-parsers:
- - 'GNU Make + GNU C Compiler (gcc)'
- total-thresholds:
- failed:
- total-all: 0
- total-high: 0
- total-normal: 0
- total-low: 0
- - archive:
- artifacts: 'build/**'
+ - 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: |
+ <io.jenkins.plugins.analysis.core.steps.IssuesRecorder plugin="warnings-ng">
+ <analysisTools>
+ <io.jenkins.plugins.analysis.warnings.Gcc4>
+ <id/>
+ <name/>
+ <jenkins plugin="plugin-util-api"/>
+ <pattern/>
+ <reportEncoding/>
+ <skipSymbolicLinks>false</skipSymbolicLinks>
+ </io.jenkins.plugins.analysis.warnings.Gcc4>
+ </analysisTools>
+ <sourceCodeEncoding/>
+ <sourceDirectory/>
+ <sourceDirectories/>
+ <ignoreQualityGate>false</ignoreQualityGate>
+ <ignoreFailedBuilds>true</ignoreFailedBuilds>
+ <failOnError>false</failOnError>
+ <healthy>0</healthy>
+ <unhealthy>0</unhealthy>
+ <minimumSeverity plugin="analysis-model-api">
+ <name>LOW</name>
+ </minimumSeverity>
+ <filters/>
+ <isEnabledForFailure>true</isEnabledForFailure>
+ <isAggregatingResults>true</isAggregatingResults>
+ <isBlameDisabled>false</isBlameDisabled>
+ <skipPublishingChecks>true</skipPublishingChecks>
+ <publishAllIssues>false</publishAllIssues>
+ <qualityGates>
+ <io.jenkins.plugins.analysis.core.util.QualityGate>
+ <threshold>1</threshold>
+ <type>TOTAL</type>
+ <status>WARNING</status>
+ </io.jenkins.plugins.analysis.core.util.QualityGate>
+ </qualityGates>
+ <trendChartType>AGGREGATION_TOOLS</trendChartType>
+ <scm/>
+ </io.jenkins.plugins.analysis.core.steps.IssuesRecorder>
+ - archive: &liburcu_publisher_archive_defaults
+ artifacts: 'build/**,tap/**,log/**'
+ follow-symlinks: true
allow-empty: false
- - trigger:
- project: lttng-ust-{version}
- threshold: SUCCESS
+ - 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: liburcu_{version}_cppcheck
+ 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:
- - pollscm: "@daily"
+ - 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}'
- builders:
- - shell: |
- rm -f liburcu-cppcheck.xml
- cppcheck --enable=all --xml --xml-version=2 $WORKSPACE 2> liburcu-cppcheck.xml
+ 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:
- - archive:
- artifacts: 'liburcu-cppcheck.xml'
- allow-empty: false
- - cppcheck:
- pattern: 'liburcu-cppcheck.xml'
- - email:
- recipients: 'ci-notification@lists.lttng.org'
- notify-every-unstable-build: true
- send-to-individuals: false
+ - 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: 'x86-64'
+ node: 'deb12-amd64'
triggers:
- - pollscm: "@daily"
+ - pollscm:
+ cron: "@daily"
builders:
- shell:
- !include-raw-escape scripts/liburcu/scan-build.sh
+ !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
-# TODO: liburcu_{version}_coverity
+- job-template:
+ name: liburcu_{version}_coverity
+ defaults: liburcu
+ node: 'deb12-amd64'
+ triggers:
+ - pollscm:
+ cron: "@daily"
-## Project
+ 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:
- !include jobs/inc/liburcu-versions.yaml.inc
+ - stable-0.13
+ - stable-0.14
+ - master
jobs:
- - 'liburcu_{version}_{buildtype}':
- buildtype: build
- arch: !!python/tuple [x86-32, x86-64]
- build: !!python/tuple [std, oot, dist]
- - 'liburcu_{version}_{buildtype}':
+ - '{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: portbuild
- arch: !!python/tuple [armhf, powerpc]
- build: !!python/tuple [std]
- - 'liburcu_{version}_cppcheck'
+ 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, yocto40-powerpc, yocto40-ppc64]
+ builds: !!python/tuple [std]
+ confs: !!python/tuple [std]
+ touchstone: '(build == "std")'
+ - '{job_prefix}liburcu_{version}_{buildtype}':
+ buildtype: macosbuild
+ platforms: !!python/tuple [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: liburcu-views
+ views:
+ - Liburcu