jjb: babeltrace: use clang-format-16
[lttng-ci.git] / jobs / liburcu.yaml
index f938d92b84d989141108ff5b482dde2c1f3963d4..ee7a4279350e41b5cf5262e6bf44c2533a5bf498 100644 (file)
@@ -4,7 +4,6 @@
 # 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
+      - 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, sles15sp5-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, sles15sp5-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
This page took 0.029363 seconds and 4 git commands to generate.