jjb: Add lttng-modules builds across certain EL kernels
[lttng-ci.git] / jobs / lttng-modules.yaml
index b3d5646bbe41eccb636befa93ed59fca2abe9a0e..ed98b73c96fda7571ceed65523615f24d35b72b3 100644 (file)
@@ -45,7 +45,7 @@
           strategy: statechange-only
           message-type: summary
           matrix-notifier: only-parent
-      - email-ext:
+      - email-ext: &lttng-modules_publisher_email-ext_defaults
           recipients: '{obj:email_to}'
           reply-to: ci-notification@lists.lttng.org
           always: false
           default: 'lttng-modules_PARAM_build'
           description: 'The parametrized job to use for child builds.'
 
+- _lttng-modules_build_parameters_ubuntu: &lttng-modules_build_parameters_el
+    name: 'lttng-modules_build_parameters_el'
+    parameters:
+      - string:
+          name: 'maxConcurrentBuild'
+          default: '20'
+          description: 'The maximum number of concurrent child build to run.'
+      - string:
+          name: 'kverfloor'
+          default: '{kverfloor}'
+          description: 'The lowest kernel version to build.'
+      - string:
+          name: 'kverceil'
+          default: '{kverceil}'
+          description: 'The highest kernel version to build. (excluded)'
+      - string:
+          name: 'kverfilter'
+          default: '{kverfilter}'
+          description: 'Kernel versions list filtering strategy.'
+      - string:
+          name: 'kverrc'
+          default: 'false'
+          description: 'Add latest RC to kernel versions list.'
+      - string:
+          name: 'kgitrepo'
+          default: 'git://git-mirror.internal.efficios.com/git/rocky.git'
+          description: 'The linux kernel git repository url.'
+      - string:
+          name: 'kbuildjob'
+          default: 'lttng-modules_PARAM_{parambuildtype}'
+          description: 'The parametrized job to use for child builds.'
+      - string:
+          name: 'elversion'
+          default: '{elversion}'
+          description: 'The EL release (eg. el8)'
+      - string:
+          name: 'getsrc_repo'
+          default: 'https://github.com/rocky-linux/rocky-tools.git'
+          description: 'The git repository that contains the getsrc tool'
+      - string:
+          name: 'getsrc_version'
+          default: 'main'
+          description: 'The tag or commit to use when cloning the getsrc tool'
+
 - _lttng-modules_build_parameters_ubuntu: &lttng-modules_build_parameters_sles
     name: 'lttng-modules_build_parameters_sles'
     parameters:
     publishers:
       - workspace-cleanup
 
+- job-template:
+    name: 'dev_review_lttng-modules_{mversion}_build-{elversion}'
+    defaults: lttng-modules
+    concurrent: true
+
+    node: 'master'
+
+    scm:
+      - git:
+          url: https://review.lttng.org/lttng-modules
+          refspec: 'refs/changes/*:refs/changes/*'
+          branches:
+            - '$GERRIT_REFSPEC'
+          basedir: src/lttng-modules
+          skip-tag: true
+
+    triggers:
+      - gerrit:
+          trigger-on:
+            - comment-added-event:
+                approval-category: 'CI-Build'
+                approval-value: 1
+          projects:
+            - project-compare-type: 'PLAIN'
+              project-pattern: 'lttng-modules'
+              branches:
+                - branch-compare-type: 'PLAIN'
+                  branch-pattern: '{mversion}'
+
+    properties:
+      - build-discarder:
+          days-to-keep: 1
+      - throttle:
+          option: 'category'
+          categories:
+            - 'gerrit-build'
+
+    <<: *lttng-modules_build_parameters_el
+    <<: *lttng-modules_build_builders_defaults
+
+    publishers:
+      - workspace-cleanup
+
 - job-template:
     name: 'dev_review_lttng-modules_{mversion}_build-{slesversion}'
     defaults: lttng-modules
       - pollscm:
           cron: "0 0 * * 5"
 
+- job-template:
+    name: 'lttng-modules_{mversion}_{buildtype}-{elversion}'
+    defaults: lttng-modules
+    description: |
+      The LTTng modules provide Linux kernel tracing capability to the LTTng
+      2.0 tracer toolset.
+
+      This job will the {mversion} branch against EL {elversion} released
+      kernels.
+
+      <p>Job is managed by Jenkins Job Builder.</p>
+
+    node: 'master'
+    triggers:
+      - pollscm:
+          cron: "@hourly"
+      - timed: "H 0 * * 6"
+    <<: *lttng-modules_build_parameters_el
+    <<: *lttng-modules_build_builders_defaults
+
 - job-template:
     name: lttng-modules_{mversion}_{buildtype}-{slesversion}
     defaults: lttng-modules
           name: 'kgitrepo'
           default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
           description: 'The linux kernel git repository url.'
+      - string:
+          name: 'distroversion'
+          default: ''
+          description: 'Supplementary distribution version, eg. sles15sp4 or el8'
+      - string:
+          name: 'getsrc_repo'
+          default: 'https://github.com/rocky-linux/rocky-tools.git'
+          description: 'The git repository that contains the getsrc tool'
+      - string:
+          name: 'getsrc_version'
+          default: 'main'
+          description: 'The tag or commit to use when cloning the getsrc tool'
 
     concurrent: true
 
     triggers: []
 
     builders:
+      - conditional-step:
+          condition-kind: regex-match
+          label: '$distroversion'
+          regex: '^el.*$'
+          steps:
+            - shell: |
+                #!/bin/bash
+                set -exu
+                git clone -b "$getsrc_version" "$getsrc_repo" src/getsrc
       - shell:
           !include-raw-escape: scripts/lttng-modules/param-build.sh
 
           kverceil: v5.18-rc1
           kverfilter: none
 
+# EL normal builds
+      - 'lttng-modules_{mversion}_{buildtype}-{elversion}':
+          mversion:
+            - master
+            - stable-2.13
+            - stable-2.12
+          elversion:
+            - el8
+          buildtype: build
+          parambuildtype: build
+          kverfloor: ''
+          kverceil: ''
+          kverfilter: stable-head
+
 # RT normal builds
       - 'lttng-modules_{mversion}_build-rt':
           mversion: master
           kverfloor: v3.0
           kverceil: v5.18
           kverfilter: lts-head
+      - 'dev_review_lttng-modules_{mversion}_build-{elversion}':
+          mversion:
+            - master
+            - stable-2.13
+            - stable-2.12
+          elversion:
+            - el8
+          buildtype: build
+          parambuildtype: build
+          kverfloor: ''
+          kverceil: ''
+          kverfilter: stable-head
       - 'dev_review_lttng-modules_{mversion}_build-{slesversion}':
           mversion:
             - master
This page took 0.024425 seconds and 4 git commands to generate.