jjb: babeltrace: use clang-format-16
[lttng-ci.git] / jobs / system-tests.yaml
index a0e808cb6e2f23fe20275d11034c967ae712d0ac..746cbbc0191ef31e40b1c5cdbe20f1746d80ea90 100644 (file)
@@ -1,6 +1,6 @@
 ---
 ## Anchors
-- system_tests_parameters_defaults: &system_tests_parameters_defaults
+- _system_tests_parameters_defaults: &system_tests_parameters_defaults
     name: 'system_tests_parameters_defaults'
     parameters:
       - string:
           name: 'LTTNG_UST_REPO'
           default: 'https://github.com/lttng/lttng-ust.git'
           description: 'LTTng-UST git repo to checkout the UST id'
+      - string:
+          name: 'ROOTFS_URL'
+          default: 'https://obj.internal.efficios.com/lava/rootfs_amd64_bookworm_2024-01-15.tar.gz'
+          description: 'The URL at which the system root FS can be downloaded'
+      - string:
+          name: 'LTTNG_CI_REPO'
+          default: 'https://github.com/lttng/lttng-ci.git'
+          description: 'LTTng-ci git repo to checkout the CI scripts'
+      - string:
+          name: 'LTTNG_CI_BRANCH'
+          default: 'master'
+          description: 'The branch of the CI repository to clone for job scripts'
+      - string:
+          name: 'LAVA_HOST'
+          default: 'lava-master-03.internal.efficios.com'
+          description: 'The hostname of the LAVA instance'
+      - choice:
+          name: 'LAVA_PROTO'
+          choices:
+            - 'http'
+            - 'https'
+          description: 'The protocol to use with the LAVA host'
 
 - publisher:
     name: 'system_tests_email_ext_default'
     publishers:
       - email-ext:
-          recipients: 'ci-notification@lists.lttng.org, cc:francis.deslauriers@efficios.com'
+          recipients: 'ci-notification@lists.lttng.org'
           reply-to: ci-notification@lists.lttng.org
           always: false
           unstable: false
           send-to:
             - recipients
 
-## Defaults
-- defaults:
-    name: baremetal_benchmarks
-    description: |
-      Runs baremetal kernel benchmarks over different combination of kernel and lttng configurations.
-    project-type: freestyle
-    node: 'amd64'
-
-    <<: *system_tests_parameters_defaults
-
-    properties:
-      - build-discarder:
-          num-to-keep: 10
-      - throttle:
-          max-total: 2
-          option: 'category'
-          categories:
-            - 'baremetal-tests'
-
-    wrappers:
-      - workspace-cleanup
-      - timestamps
-      - ansicolor
-      - credentials-binding:
-          - text:
-              credential-id: jenkins_lava_key
-              variable: LAVA_JENKINS_TOKEN
-          - text:
-              credential-id: jenkins_lava2_key
-              variable: LAVA2_JENKINS_TOKEN
-          - file:
-              credential-id: system_tests_storage_key
-              variable: identity_file
-      - inject:
-          properties-content: |
-            BUILD_DEVICE=baremetal
-    scm:
-      - git:
-          url: https://github.com/lttng/lttng-ci
-          basedir: src/lttng-ci/
-
-    builders:
-      - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
-      - shell: !include-raw-escape: scripts/system-tests/inject-ssh-commands.sh
-      - trigger-builds:
-        - project: "build_kernel_PARAM"
-          property-file: 'properties.txt'
-          block: true
-      - inject:
-          properties-file: properties.txt
-      - shell: !include-raw-escape: scripts/system-tests/run-baremetal-benchmarks.sh
-      - shell: !include-raw-escape: scripts/system-tests/summarize-results.sh
-
-    publishers:
-      - archive:
-          artifacts: '*.png,*.csv'
-          stable: true
-          do-not-fingerprint: true
-      - image-gallery:
-        - gallery-type: archived-images-gallery
-          title: Results
-          includes: '*.png'
-      - workspace-cleanup
-
-- defaults:
-    name: vm_tests
+- job-template:
+    name: vm_tests_k{kversion}_l{lttngversion}
     description: |
       Runs root_regression and root_destructive_tests on a virtual machine over different combinations of kernel and lttng configurations.
     project-type: freestyle
-    node: 'amd64'
+    node: 'deb12-amd64'
     <<: *system_tests_parameters_defaults
 
     properties:
       - inject:
           properties-content: |
             BUILD_DEVICE=kvm
+            LTTNG_VERSION={lttngversion}
+            LTTNG_CI_REPO=${{LTTNG_CI_REPO}}
+            LTTNG_CI_BRANCH=${{LTTNG_CI_BRANCH}}
+            LAVA_HOST=${{LAVA_HOST}}
+            LAVA_PROTO=${{LAVA_PROTO}}
 
     scm:
       - git:
-          url: https://github.com/lttng/lttng-ci
+          url: "${{LTTNG_CI_REPO}}"
           basedir: src/lttng-ci/
+          branches:
+            - "${{LTTNG_CI_BRANCH}}"
 
     builders:
       - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
 
     publishers:
       - workspace-cleanup
+      - email-ext:
+          recipients: '{obj:email_to}'
+          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: true
+          success: false
+          fixed: false
+          fixed-unhealthy: true
+          still-unstable: false
+          pre-build: false
+          matrix-trigger: only-parent
+          send-to:
+            - recipients
 
-- defaults:
-    name: vm_tests_fuzzing
-    description: |
-      Runs virtual machine fuzzing tests over different combination of kernel and lttng configurations.
-    project-type: freestyle
-    node: 'amd64'
-    <<: *system_tests_parameters_defaults
-
-    properties:
-      - build-discarder:
-          num-to-keep: 10
-      - throttle:
-          max-total: 4
-          option: 'category'
-          categories:
-            - 'kvm-tests'
-
-    wrappers:
-      - workspace-cleanup
-      - timestamps
-      - ansicolor
-      - credentials-binding:
-          - text:
-              credential-id: jenkins_lava_key
-              variable: LAVA_JENKINS_TOKEN
-          - text:
-              credential-id: jenkins_lava2_key
-              variable: LAVA2_JENKINS_TOKEN
-      - inject:
-          properties-content: |
-            BUILD_DEVICE=kvm
-
-    scm:
-      - git:
-          url: https://github.com/lttng/lttng-ci
-          basedir: src/lttng-ci/
-
-    builders:
-      - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
-      - trigger-builds:
-        - project: "build_kernel_PARAM"
-          property-file: 'properties.txt'
-          block: true
-      - inject:
-          properties-file: properties.txt
-      - shell: !include-raw-escape: scripts/system-tests/run-kvm-fuzzing-tests.sh
-
-    publishers:
-      - workspace-cleanup
-
-- defaults:
-    name: baremetal_tests
+- job-template:
+    name: baremetal_tests_k{kversion}_l{lttngversion}
     description: |
       Runs perf_regression tests on a baremetal machine over different combinations of kernel and lttng configurations.
     project-type: freestyle
-    node: 'amd64'
+    node: 'deb12-amd64'
 
     <<: *system_tests_parameters_defaults
 
     properties:
       - build-discarder:
           num-to-keep: 10
+          artifact-num-to-keep: 2
       - throttle:
           max-total: 2
           option: 'category'
       - inject:
           properties-content: |
             BUILD_DEVICE=baremetal
-
+            LTTNG_VERSION={lttngversion}
+            LTTNG_CI_REPO=${{LTTNG_CI_REPO}}
+            LTTNG_CI_BRANCH=${{LTTNG_CI_BRANCH}}
+            LAVA_HOST=${{LAVA_HOST}}
+            LAVA_PROTO=${{LAVA_PROTO}}
     scm:
       - git:
-          url: https://github.com/lttng/lttng-ci
+          url: "${{LTTNG_CI_REPO}}"
           basedir: src/lttng-ci/
+          branches:
+            - "${{LTTNG_CI_BRANCH}}"
 
     builders:
       - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
     publishers:
       - workspace-cleanup
 
-## Templates
 - job-template:
     name: build_kernel_PARAM
     description: |
       Builds a Linux Kernel and LTTng Modules if necessary
     concurrent: true
-    node: 'amd64'
+    node: 'deb12-amd64'
 
     parameters:
       - string:
       - string:
           name: 'S3_STORAGE_LTTNG_MODULES'
           description: 'Path to store the LTTng Modules'
+      - string:
+          name: 'LTTNG_CI_REPO'
+          default: 'https://github.com/lttng/lttng-ci.git'
+          description: 'LTTng-ci git repo to checkout the CI scripts'
+      - string:
+          name: 'LTTNG_CI_BRANCH'
+          default: 'master'
+          description: 'The branch of the CI repository to clone for job scripts'
 
     properties:
       - build-discarder:
 
     scm:
       - git:
-          url: https://github.com/lttng/lttng-ci
+          url: "${{LTTNG_CI_REPO}}"
           basedir: src/lttng-ci/
-      - git:
-          url : $LTTNG_MODULES_REPO
-          basedir: src/lttng-modules/
           branches:
-            - $LTTNG_MODULES_COMMIT_ID
+            - "${{LTTNG_CI_BRANCH}}"
 
     builders:
+      - shell: !include-raw-escape: scripts/system-tests/checkout-modules.sh
       - shell: !include-raw-escape: scripts/system-tests/generate-properties-slave.sh
       - inject:
           properties-file: properties.txt
           description: 'Force the child jobs to run'
       - bool:
           name: 'FORCE_FAILED_JOB_RUN'
-          default: false
+          default: true
           description: 'Force the failed child jobs to run'
 
     properties:
     publishers:
       - system_tests_email_ext_default
 
-- job-template:
-    name: baremetal_benchmarks_k{kversion}_l{lttngversion}
-    defaults: baremetal_benchmarks
-- job-template:
-    name: vm_tests_k{kversion}_l{lttngversion}
-    defaults: vm_tests
-- job-template:
-    name: baremetal_tests_k{kversion}_l{lttngversion}
-    defaults: baremetal_tests
-
-- job-template:
-    name: vm_tests_fuzzing_k{kversion}_l{lttngversion}
-    defaults: vm_tests_fuzzing
+## Project
 
 # Canary jobs are made to confirm that the whole Lava pipeline is working.
 # They are scheduled once a day always on the same (LTTng, Kernel) code. If any
 # of those jobs fails, it means that there is an issue with the configuration
-- job-template:
-    name: baremetal_benchmarks_canary
-    defaults: baremetal_benchmarks
 
-- job-template:
-    name: baremetal_tests_canary
-    defaults: baremetal_tests
+# Only build the "supported" version against the master kernel since
+# "unsupported" version do not get backport for new kernel.
+- project:
+    name: system-tests-supported-kmaster
+    email_to: 'ci-notification@lists.lttng.org, cc:jgalar@efficios.com'
+    kversion:
+      - master
+    lttngversion:
+      - master
+      - stable-2.13
+    jobs:
+      - 'vm_tests_k{kversion}_l{lttngversion}'
+      - 'baremetal_tests_k{kversion}_l{lttngversion}'
 
-- job-template:
-    name: vm_tests_canary
-    defaults: vm_tests
+## Views
+- view-template:
+    name: 'System tests'
+    view-type: list
+    regex: 'vm_tests_.*|baremetal_tests_.*|baremetal_benchmarks_.*|system_.*'
 
-## Project
+# Test against particular linux version.
 - project:
     name: system-tests
+    email_to: 'ci-notification@lists.lttng.org, cc:jgalar@efficios.com'
     kversion:
-      - master
-      - linux-4.4.y
+      - canary
       - linux-4.9.y
       - linux-4.14.y
       - linux-4.19.y
-      - linux-5.0.y
-      - linux-5.1.y
+      - linux-5.4.y
+      - linux-5.10.y
+      - linux-5.15.y
+      - linux-5.16.y
+      - linux-6.1.y
+      - linux-6.6.y
     lttngversion:
+      - canary
       - master
-      - stable-2.9
-      - stable-2.10
-      - stable-2.11
+      - stable-2.13
+    jobs:
+      - 'vm_tests_k{kversion}_l{lttngversion}'
+      - 'baremetal_tests_k{kversion}_l{lttngversion}'
+- project:
+    name: system-tests-2.12
+    email_to: 'ci-notification@lists.lttng.org, cc:jgalar@efficios.com'
+    kversion:
+      - linux-4.9.y
+      - linux-4.14.y
+      - linux-4.19.y
+      - linux-5.4.y
+      - linux-5.10.y
+      - linux-5.15.y
+      - linux-5.16.y
+    lttngversion:
       - stable-2.12
     jobs:
       - 'vm_tests_k{kversion}_l{lttngversion}'
-      - 'baremetal_benchmarks_k{kversion}_l{lttngversion}'
       - 'baremetal_tests_k{kversion}_l{lttngversion}'
 - project:
     name: system-tests-vm-only
+    email_to: 'ci-notification@lists.lttng.org, cc:jgalar@efficios.com'
     kversion:
       - linux-3.18.y
     lttngversion:
-      - master
-      - stable-2.9
-      - stable-2.10
-      - stable-2.11
       - stable-2.12
+      - stable-2.13
     jobs:
       - 'vm_tests_k{kversion}_l{lttngversion}'
 
-- project:
-    name: system-tests-canary
-    jobs:
-      - 'vm_tests_canary'
-      - 'baremetal_tests_canary'
-      - 'baremetal_benchmarks_canary'
-
-- project:
-    name: system-fuzzing-tests
-    kversion: master
-    lttngversion: master
-    jobs:
-      - 'vm_tests_fuzzing_k{kversion}_l{lttngversion}'
 - project:
     name: system-general
     test_type:
       - vm_tests
       - baremetal_tests
-      - baremetal_benchmarks
     jobs:
       - 'build_kernel_PARAM'
       - 'system_ALL_{test_type}_trigger'
+
+- project:
+    name: system-tests-views
+    views:
+      - 'System tests'
This page took 0.028228 seconds and 4 git commands to generate.