jjb: librseq: add review portbuild job
[lttng-ci.git] / jobs / librseq.yaml
index db7fa74d27d650a02e394a7b18c4ee35fdf54a36..ff7f4c285e030f21bd99cad4f2854b6272ebec84 100644 (file)
@@ -4,7 +4,6 @@
 # jobtypes:
 #   - build
 #   - portbuild
-#   - cppcheck
 #   - coverity
 #   - scan-build
 #   - pylint
     project-type: freestyle
 
     wrappers:
-      - ansicolor
-      - timeout:
+      - ansicolor: &librseq_wrapper_ansicolor_defaults
+          colormap: xterm
+      - timeout: &librseq_wrapper_timeout_defaults
           timeout: 10
           fail: true
           type: no-activity
       - timestamps
-      - workspace-cleanup:
-          clean-if:
-            - failure: false
+      - workspace-cleanup
 
     scm:
       - git:
-          url: git://github.com/{github_user}/{github_name}.git
+          url: https://github.com/{github_user}/{github_name}.git
           browser: githubweb
           browser-url: https://github.com/{github_user}/{github_name}
           branches:
           properties-content: |
             PROJECT_NAME=librseq
       - build-discarder:
-          num-to-keep: 2
+          num-to-keep: 10
+          artifact-num-to-keep: 2
       - github:
           url: https://github.com/{github_user}/{github_name}
 
 
 ## Anchors
-- librseq_build_axes_defaults: &librseq_build_axes_defaults
-    name: 'librseq_build_axes_defaults'
+- _librseq_matrix_axes_defaults: &librseq_matrix_axes_defaults
+    name: 'librseq_matrix_axes_defaults'
     project-type: matrix
     node: 'master' # Applies only to matrix flyweight task
+    execution-strategy:
+      touchstone:
+        expr: '{touchstone}'
+        result: unstable
     axes:
-      - axis:
+      - axis: &librseq_matrix_axis_platform
          type: slave
-         name: arch
-         values: '{obj:arch}'
-      - axis:
+         name: platform
+         values: '{obj:platforms}'
+      - axis: &librseq_matrix_axis_conf
          type: user-defined
          name: conf
-         values: '{obj:conf}'
-      - axis:
+         values: '{obj:confs}'
+      - axis: &librseq_matrix_axis_build
          type: user-defined
          name: build
-         values: '{obj:build}'
+         values: '{obj:builds}'
 
-- librseq_build_axes_cc: &librseq_build_axes_cc
-    name: 'librseq_build_axes_cc'
+- _librseq_matrix_axes_cc: &librseq_matrix_axes_cc
+    name: 'librseq_matrix_axes_cc'
     project-type: matrix
     node: 'master' # Applies only to matrix flyweight task
+    execution-strategy:
+      touchstone:
+        expr: '{touchstone}'
+        result: unstable
     axes:
-      - axis:
-         type: slave
-         name: arch
-         values: '{obj:arch}'
-      - axis:
-         type: user-defined
-         name: conf
-         values: '{obj:conf}'
-      - axis:
-         type: user-defined
-         name: build
-         values: '{obj:build}'
-      - axis:
+      - axis: *librseq_matrix_axis_platform
+      - axis: *librseq_matrix_axis_conf
+      - axis: *librseq_matrix_axis_build
+      - axis: &librseq_matrix_axis_cc
          type: user-defined
          name: cc
-         values: '{obj:cc}'
+         values: '{obj:ccs}'
 
-- librseq_build_builders_defaults: &librseq_build_builders_defaults
-    name: 'librseq_build_builders_defaults'
+- _librseq_builders_defaults: &librseq_builders_defaults
+    name: 'librseq_builders_defaults'
     builders:
       - shell:
-         !include-raw-escape: scripts/librseq/build.sh
+         !include-raw-escape:
+           - scripts/common/print.sh
+           - scripts/librseq/build.sh
 
-- librseq_build_publishers_defaults: &librseq_build_publishers_defaults
-    name: 'librseq_build_publishers_defaults'
+- _librseq_publishers_defaults: &librseq_publishers_defaults
+    name: 'librseq_publishers_defaults'
     publishers:
-      - warnings:
-          console-log-parsers:
-            - 'GNU Make + GNU C Compiler (gcc)'
-          total-thresholds:
-            unstable:
-              total-all: 0
-              total-high: 0
-              total-normal: 0
-              total-low: 0
-      - archive:
-          artifacts: 'build/**'
+      - tap: &librseq_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: &librseq_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: &librseq_publisher_archive_defaults
+          artifacts: 'build/**,tap/**,log/**'
+          follow-symlinks: true
           allow-empty: false
-      - ircbot:
-          strategy: new-failure-and-fixed
+      - workspace-cleanup: &librseq_publisher_workspace-cleanup_defaults
+          clean-if:
+            - failure: false
+      - ircbot: &librseq_publisher_ircbot_defaults
+          strategy: statechange-only
+          message-type: summary
           matrix-notifier: only-parent
-          channels:
-            - name: '#lttng'
-      - email-ext:
+      - email-ext: &librseq_publisher_email-ext_defaults
           recipients: '{obj:email_to}'
           reply-to: ci-notification@lists.lttng.org
           always: false
           send-to:
             - recipients
 
+- _librseq_publishers_review: &librseq_publishers_review
+    name: 'librseq_publishers_review'
+    publishers:
+      - tap: *librseq_publisher_tap_defaults
+      - raw: *librseq_publisher_warnings-ng_defaults
+      - archive: *librseq_publisher_archive_defaults
+      - workspace-cleanup: *librseq_publisher_workspace-cleanup_defaults
+
+
 ## Templates
 - job-template:
     name: librseq_{version}_{buildtype}
     defaults: librseq
 
-    <<: *librseq_build_axes_defaults
-    <<: *librseq_build_builders_defaults
-    <<: *librseq_build_publishers_defaults
+    <<: *librseq_matrix_axes_defaults
+    <<: *librseq_builders_defaults
+    <<: *librseq_publishers_defaults
 
 - job-template:
     name: librseq_{version}_{cctype}
     defaults: librseq
 
-    <<: *librseq_build_axes_cc
-    <<: *librseq_build_builders_defaults
-    <<: *librseq_build_publishers_defaults
+    <<: *librseq_matrix_axes_cc
+    <<: *librseq_builders_defaults
+    <<: *librseq_publishers_defaults
 
 - job-template:
-    name: librseq_{version}_cppcheck
+    name: dev_review_librseq_{version}_{buildtype}
     defaults: librseq
+    concurrent: true
 
-    triggers:
-      - pollscm:
-          cron: "@daily"
+    scm:
+      - git:
+          url: https://review.lttng.org/librseq
+          refspec: 'refs/changes/*:refs/changes/*'
+          branches:
+            - '$GERRIT_REFSPEC'
+          basedir: src/librseq
+          skip-tag: true
 
-    builders:
-      - shell: |
-          rm -f cppcheck-result.xml
-          cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/librseq 2> cppcheck-result.xml
+    triggers:
+      - gerrit:
+          trigger-on:
+            - comment-added-event:
+                approval-category: 'CI-Build'
+                approval-value: 1
+          projects:
+            - project-compare-type: 'PLAIN'
+              project-pattern: 'librseq'
+              branches:
+                - branch-compare-type: 'PLAIN'
+                  branch-pattern: '{version}'
+
+    <<: *librseq_matrix_axes_defaults
+    <<: *librseq_builders_defaults
+    <<: *librseq_publishers_review
 
-    publishers:
-      - archive:
-          artifacts: 'cppcheck-result.xml'
-          allow-empty: false
-      - cppcheck:
-          pattern: 'cppcheck-result.xml'
-      - email-ext:
-          recipients: '{obj:email_to}'
-          reply-to: ci-notification@lists.lttng.org
-          always: false
-          unstable: false
-          first-failure: true
-          first-unstable: false
-          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: true
-          pre-build: false
-          matrix-trigger: only-parent
-          send-to:
-            - recipients
+    properties:
+      - inject:
+          properties-content: |
+            PROJECT_NAME=librseq
+      - build-discarder:
+          days-to-keep: 1
+      - throttle:
+          option: 'category'
+          categories:
+            - 'gerrit-{buildtype}'
 
 - job-template:
     name: librseq_{version}_scan-build
     defaults: librseq
-    node: 'amd64'
+    node: 'deb12-amd64'
 
     triggers:
       - pollscm:
           name: 'HTML Report'
           dir: 'scan-build-archive/'
           files: 'index.html'
+      - workspace-cleanup: *librseq_publisher_workspace-cleanup_defaults
 
 - job-template:
     name: librseq_{version}_coverity
     defaults: librseq
-    node: 'amd64'
+    node: 'deb12-amd64'
 
     triggers:
       - pollscm:
           cron: "@daily"
 
     wrappers:
-      - ansicolor
-      - timeout:
-          timeout: 10
-          fail: true
-          type: no-activity
+      - ansicolor: *librseq_wrapper_ansicolor_defaults
+      - timeout: *librseq_wrapper_timeout_defaults
       - timestamps
-      - workspace-cleanup:
-          clean-if:
-            - failure: false
+      - workspace-cleanup
       - credentials-binding:
           - username-password-separated:
               credential-id: librseq_coverity_token
       - archive:
           artifacts: 'analysis-results.tgz,cov-int/**'
           allow-empty: false
+      - workspace-cleanup: *librseq_publisher_workspace-cleanup_defaults
 
 - view-template:
-    name: 'rseq'
+    name: 'Librseq'
     description: 'Restartable sequences'
     view-type: list
-    regex: 'librseq_.*|linux-rseq_.*'
+    regex: 'librseq_.*'
 
 
 ## Project
       - master
     jobs:
       - 'librseq_{version}_{buildtype}':
-          buildtype: build
-          arch: !!python/tuple [amd64]
-          build: !!python/tuple [std, oot, dist, oot-dist]
-          conf: !!python/tuple [std, static]
-      - 'librseq_{version}_{cctype}':
-          cctype: gccbuild
-          arch: !!python/tuple [amd64]
-          build: !!python/tuple [std]
-          conf: !!python/tuple [std, static]
-          cc: !!python/tuple [gcc-4.8, gcc-5, gcc-6, gcc-7, gcc-8]
+          buildtype: linuxbuild
+          platforms: !!python/tuple [deb12-amd64]
+          builds: !!python/tuple [std, oot, dist, oot-dist]
+          confs: !!python/tuple [std, static]
+          touchstone: ''
       - 'librseq_{version}_{cctype}':
           cctype: clangbuild
-          arch: !!python/tuple [amd64]
-          build: !!python/tuple [std]
-          conf: !!python/tuple [std, static]
-          cc: !!python/tuple [clang-3.9, clang-4.0, clang-6.0, clang-7]
+          platforms: !!python/tuple [deb12-amd64]
+          builds: !!python/tuple [std]
+          confs: !!python/tuple [std, static]
+          ccs: !!python/tuple [clang-13, clang-14, clang-15]
+          touchstone: ''
       - 'librseq_{version}_{buildtype}':
           buildtype: portbuild
-          arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386]
-          build: !!python/tuple [std]
-          conf: !!python/tuple [std, static]
-#      - 'librseq_{version}_cppcheck'
-#      - 'librseq_{version}_scan-build'
-#      - 'librseq_{version}_coverity':
-#          version: master
+          platforms: !!python/tuple [deb12-armhf, deb12-arm64, deb12-ppc64el, deb12-i386]
+          builds: !!python/tuple [std]
+          confs: !!python/tuple [std, static]
+          touchstone: ''
+
+- project:
+    name: review-librseq
+    github_user: compudj
+    github_name: librseq
+    version:
+      - master
+    jobs:
+      - 'dev_review_librseq_{version}_{buildtype}':
+          buildtype: linuxbuild
+          platforms: !!python/tuple [deb12-amd64]
+          builds: !!python/tuple [std, oot, dist, oot-dist]
+          confs: !!python/tuple [std, static]
+          touchstone: ''
+      - 'dev_review_librseq_{version}_{buildtype}':
+          buildtype: portbuild
+          platforms: !!python/tuple [deb12-armhf, deb12-arm64, deb12-ppc64el, deb12-i386]
+          builds: !!python/tuple [std]
+          confs: !!python/tuple [std]
+          touchstone: ''
 
 - project:
     name: librseq-views
     views:
-      - rseq
+      - Librseq
This page took 0.027911 seconds and 4 git commands to generate.