Feat!: Upgrade Jenkins-job-builder to 6x
[ci-management.git] / jjb / csit / csit-vpp-device.yaml
index d901c78..dbf3ef9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 - project:
     name: csit-vpp-device
     description: 'CSIT jenkins jobs.'
-    os:
-      - 'ubuntu1804'
-    node-arch:
-      - '1n-skx'
-      - '1n-tx2':
-          executor: 'vpp-csit-arm-ubuntu18'
-          skip-vote: 'true'
-          trigger: 'gerrit-trigger-csit-vpp-devicetest-manual'
     jobs:
-      - 'csit-vpp-device-{stream}-{os}-{node-arch}'
-      - 'csit-vpp-device-{stream}-{os}-{node-arch}-semiweekly':
+      - 'csit-vpp-device-{stream}-{os}-{executor-arch}-{node-arch}'
+      - 'csit-vpp-device-semiweekly-{stream}-{os}-{executor-arch}-{node-arch}'
+      - 'csit-vpp-device-weekly-{stream}-{os}-{executor-arch}-{node-arch}'
+      - 'csit-vpp-device-report-coverage-{stream}-{node-arch}':
           stream:
-            - master:
-                branch: 'master'
-                branch-id: 'oper'
-            - '1908_2':
-                branch: 'rls1908_2'
-                branch-id: 'oper-rls1908_2'
-            - '2009':
-                branch: 'rls2009'
-                branch-id: 'oper-rls2009'
-      - 'csit-vpp-device-{stream}-{os}-{node-arch}-weekly':
-          stream:
-            - master:
-                branch: 'master'
-                branch-id: 'oper'
-            - '1908_2':
-                branch: 'rls1908_2'
-                branch-id: 'oper-rls1908_2'
-            - '2009':
-                branch: 'rls2009'
-                branch-id: 'oper-rls2009'
-      - 'csit-vpp-device-master-{os}-1n-tx2-csit-verify-hourly'
-      - 'csit-vpp-device-master-{os}-1n-tx2-vpp-verify-hourly'
-
+            - '2402':
+                branch: 'rls2402'
+                branch-id: 'oper-rls2402'
+    node-arch:
+      - '1n-alt':
+          os: 'ubuntu2204'
+          executor-arch: 'aarch64'
+          make-parallel-jobs: '32'
+          skip-vote: 'false'
+      - '1n-spr':
+          os: 'ubuntu2204'
+          executor-arch: 'x86_64'
+          make-parallel-jobs: '32'
+          skip-vote: 'true'
     project: 'csit'
-    executor: 'vpp-csit-device'
     branch: 'master'
     branch-id: 'oper'
-    trigger: 'gerrit-trigger-csit-vpp-devicetest-full'
     stream:
       - master:
           branch: 'master'
           branch-id: 'oper'
-      - '1908_2':
-          branch: 'rls1908_2'
-          branch-id: 'oper-rls1908_2'
-      - '2005':
-          branch: 'rls2005'
-          branch-id: 'oper-rls2005'
-      - '2009':
-          branch: 'rls2009'
-          branch-id: 'oper-rls2009'
+      - '2402':
+          branch: 'rls2402'
+          branch-id: 'oper-rls2402'
 
 - job-template:
-    name: 'csit-vpp-device-{stream}-{os}-{node-arch}'
-    description: |
-      <ul>
-          <li>objective
-              <ul>
-                  <li>vpp-device verify - per csit gerrit patch
-              </ul>
-          <li>job
-              <ul>
-                  <li>name: <b>csit-vpp-device-{stream}-{os}-{node-arch}</b>
-                  <li>trigger: keyword in comment to csit patch:
-                      <b>csit-devicetest tag_list</b>
-              </ul>
-          <li>executor
-              <ul>
-                  <li>{executor}
-              </ul>
-          <li>test-cases selection
-              <ul>
-                  <li>test-cases selected using trigger keyword followed by tags
-                  <li>all test-cases are labelled with CSIT RF topic tags
-                      defined in <i>csit/docs/tag_documentation.rst</i>
-              </ul>
-          <li>default tags for vpp-device test type
-              <ul>
-                  <li>devicetest
-              </ul>
-          <li>results
-              <ul>
-                  <li>jjb verify: PASS/FAIL
-                  <li>present: no
-                  <li>analyse: no
-              </ul>
-      </ul>
+    name: 'csit-vpp-device-report-coverage-{stream}-{node-arch}'
 
     project-type: freestyle
-    node: '{executor}'
+    node: 'csit-builder-{os}-prod-{executor-arch}'
     concurrent: true
-    archive-artifacts: 'archive/*.*'
     latest-only: false
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: '{build-num-to-keep}'
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
     parameters:
       - project-parameter:
           project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
       - os-parameter:
           os: '{os}'
-      - gerrit-refspec-parameter
+      - gerrit-refspec-parameter:
+          refspec: '$GERRIT_REFSPEC'
       - gerrit-event-type-parameter
       - gerrit-event-comment-text-parameter
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      # This is an automatic verify job, part of API coverage.
-      # CRC checking is needed to ensure vpp crc job breaks only when intended.
-      # Unlikely to be removed, as this job is primary source of API coverage.
       - csit-fail-on-crc-mismatch-parameter:
           fail-on-crc-mismatch: 'True'
 
           build-timeout: '{build-timeout}'
 
     triggers:
-      - '{trigger}':
+      - gerrit-trigger-csit-perftest:
           project: '{project}'
           branch: '{branch}'
-          skip-vote: '{skip-vote}'
+          trigger-word: 'csit-vpp-report-dev-{node-arch}'
+          skip-vote: false
 
     builders:
+      - shell:
+          !include-raw-escape:
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
           - ../scripts/csit/device-verify.sh
 
     publishers:
-      - robot:
-          output-path: archive
-          other-files:
-            - '*.*'
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+      - fdio-infra-publish
 
 - job-template:
-    name: 'csit-vpp-device-{stream}-{os}-{node-arch}-semiweekly'
-    description: |
-      <ul>
-          <li>objective
-              <ul>
-                  <li>Validate latest vpp build from corresponding branch stored
-                      in nexus against verified CSIT codebase of corresponding
-                      branch.
-              </ul>
-          <li>executor
-              <ul>
-                  <li>{executor}
-              </ul>
-          <li>test-cases selection
-              <ul>
-                  <li>pre-selected test-cases
-                  <li>all test-cases are labelled with CSIT RF topic tags
-                      defined in <i>csit/docs/tag_documentation.rst</i>
-              </ul>
-          <li>default tags for vpp-device test type
-              <ul>
-                  <li>devicetest
-              </ul>
-          <li>results
-              <ul>
-                  <li>jjb verify: PASS/FAIL
-                  <li>present: no
-                  <li>analyse: no
-              </ul>
-      </ul>
+    name: 'csit-vpp-device-{stream}-{os}-{executor-arch}-{node-arch}'
 
     project-type: freestyle
-    node: '{executor}'
-    concurrent: false
-    archive-artifacts: 'csit/archive/*.*'
+    node: 'csit-builder-{os}-prod-{executor-arch}'
+    concurrent: true
     latest-only: false
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: '{build-num-to-keep}'
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
     parameters:
       - project-parameter:
           project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
       - os-parameter:
           os: '{os}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
+      - gerrit-refspec-parameter:
+          refspec: '$GERRIT_REFSPEC'
+      - gerrit-event-type-parameter
+      - gerrit-event-comment-text-parameter
+      # This is an automatic verify job, part of API coverage.
+      # CRC checking is needed to ensure vpp crc job breaks only when intended.
+      # Unlikely to be removed, as this job is primary source of API coverage.
+      - csit-fail-on-crc-mismatch-parameter:
+          fail-on-crc-mismatch: 'True'
+
+    scm:
+      - gerrit-trigger-scm:
+          credentials-id: 'jenkins-gerrit-credentials'
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
 
     wrappers:
-      - fdio-infra-wrappers-non-activity-timeout:
+      - fdio-infra-wrappers:
           build-timeout: '{build-timeout}'
 
     triggers:
-      - timed: '0 4 * * 2,6'
-
-      - gerrit-trigger-manually-triggered:
-          comment-trigger-value: 'csit-verify-vpp'
-          name: '{project}'
+      - gerrit-trigger-csit-vpp-devicetest-full:
+          project: '{project}'
           branch: '{branch}'
+          skip-vote: '{skip-vote}'
 
     builders:
-      - shell: 'echo "BRANCH_ID={branch-id}" > $WORKSPACE/variables.prop'
-      - inject:
-          properties-file: variables.prop
       - shell:
           !include-raw-escape:
-          - ../scripts/csit/device-semiweekly.sh
+          - ../scripts/setup_executor_env.sh
+      - shell:
+          !include-raw-escape:
+          - ../scripts/csit/device-verify.sh
 
     publishers:
-      - robot:
-          output-path: 'csit/archive'
-          other-files:
-            - '*.*'
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+      - fdio-infra-publish
 
 - job-template:
-    name: 'csit-vpp-device-{stream}-{os}-{node-arch}-weekly'
-    description: |
-      <ul>
-          <li>objective
-              <ul>
-                  <li>Validate CSIT code of corresponding branch against
-                      verified vpp build from corresponding branch.
-              </ul>
-          <li>executor
-              <ul>
-                  <li>{executor}
-              </ul>
-          <li>test-cases selection
-              <ul>
-                  <li>pre-selected test-cases
-                  <li>all test-cases are labelled with CSIT RF topic tags
-                      defined in <i>csit/docs/tag_documentation.rst</i>
-              </ul>
-          <li>default tags for vpp-device test type
-              <ul>
-                  <li>devicetest
-              </ul>
-          <li>results
-              <ul>
-                  <li>jjb verify: PASS/FAIL
-                  <li>present: no
-                  <li>analyse: no
-              </ul>
-      </ul>
+    name: 'csit-vpp-device-semiweekly-{stream}-{os}-{executor-arch}-{node-arch}'
 
     project-type: freestyle
-    node: '{executor}'
+    node: 'csit-builder-{os}-prod-{executor-arch}'
     concurrent: false
-    archive-artifacts: 'archive/*.*'
     latest-only: false
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: '{build-num-to-keep}'
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
     parameters:
       - project-parameter:
           project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
       - os-parameter:
           os: '{os}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-
-    scm:
-      - git-scm:
-          credentials-id: 'jenkins-gerrit-credentials'
-          branch: '{branch}'
 
     wrappers:
       - fdio-infra-wrappers-non-activity-timeout:
           build-timeout: '{build-timeout}'
 
     triggers:
-      - timed: '0 4 * * 0'
+      - timed: '0 4 * * 2,6'
 
       - gerrit-trigger-manually-triggered:
-          comment-trigger-value: 'csit-vpp-ref-verify'
+          comment-trigger-value: 'csit-verify-vpp'
           name: '{project}'
           branch: '{branch}'
 
     builders:
+      - shell: 'echo "BRANCH_ID={branch-id}" > $WORKSPACE/variables.prop'
+      - inject:
+          properties-file: variables.prop
       - shell:
           !include-raw-escape:
-          - ../scripts/csit/device-verify.sh
+          - ../scripts/setup_executor_env.sh
+      - shell:
+          !include-raw-escape:
+          - ../scripts/csit/device-semiweekly.sh
 
     publishers:
-      - robot:
-          output-path: archive
-          other-files:
-            - '*.*'
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+      - fdio-infra-publish
 
 - job-template:
-    name: 'csit-vpp-device-master-{os}-1n-tx2-csit-verify-hourly'
-    description: |
-      <ul>
-          <li>objective
-              <ul>
-                  <li>Validate CSIT code of corresponding branch against
-                      verified vpp build from corresponding branch.
-              </ul>
-          <li>executor
-              <ul>
-                  <li>vpp-csit-arm-ubuntu18
-              </ul>
-          <li>test-cases selection
-              <ul>
-                  <li>pre-selected test-cases
-                  <li>all test-cases are labelled with CSIT RF topic tags
-                      defined in <i>csit/docs/tag_documentation.rst</i>
-              </ul>
-          <li>default tags for vpp-device test type
-              <ul>
-                  <li>devicetest
-              </ul>
-          <li>results
-              <ul>
-                  <li>jjb verify: PASS/FAIL
-                  <li>present: no
-                  <li>analyse: no
-              </ul>
-      </ul>
+    name: 'csit-vpp-device-weekly-{stream}-{os}-{executor-arch}-{node-arch}'
 
     project-type: freestyle
-    node: 'vpp-csit-arm-ubuntu18'
+    node: 'csit-builder-{os}-prod-{executor-arch}'
     concurrent: false
-    archive-artifacts: 'archive/*.*'
     latest-only: false
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: '{build-num-to-keep}'
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
     parameters:
       - project-parameter:
           project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
       - os-parameter:
-          os: 'ubuntu1804'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
+          os: '{os}'
 
     scm:
       - git-scm:
           build-timeout: '{build-timeout}'
 
     triggers:
-      - timed: '0 * * * *'
-
-    builders:
-      - shell:
-          !include-raw-escape:
-          - ../scripts/csit/device-verify.sh
-
-    publishers:
-      - robot:
-          output-path: archive
-          other-files:
-            - '*.*'
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
-
-- job-template:
-    name: 'csit-vpp-device-master-{os}-1n-tx2-vpp-verify-hourly'
-    description: |
-      <ul>
-          <li>objective
-              <ul>
-                  <li>Validate latest vpp build from corresponding branch stored
-                      in nexus against verified CSIT codebase of corresponding
-                      branch.
-              </ul>
-          <li>executor
-              <ul>
-                  <li>vpp-csit-arm-ubuntu18
-              </ul>
-          <li>test-cases selection
-              <ul>
-                  <li>pre-selected test-cases
-                  <li>all test-cases are labelled with CSIT RF topic tags
-                      defined in <i>csit/docs/tag_documentation.rst</i>
-              </ul>
-          <li>default tags for vpp-device test type
-              <ul>
-                  <li>devicetest
-              </ul>
-          <li>results
-              <ul>
-                  <li>jjb verify: PASS/FAIL
-                  <li>present: no
-                  <li>analyse: no
-              </ul>
-      </ul>
-
-    project-type: freestyle
-    node: 'vpp-csit-arm-ubuntu18'
-    concurrent: false
-    archive-artifacts: 'csit/archive/*.*'
-    latest-only: false
-
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: '{build-num-to-keep}'
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+      - timed: '0 4 * * 0'
 
-    parameters:
-      - project-parameter:
-          project: '{project}'
-      - gerrit-parameter:
+      - gerrit-trigger-manually-triggered:
+          comment-trigger-value: 'csit-vpp-ref-verify'
+          name: '{project}'
           branch: '{branch}'
-      - os-parameter:
-          os: 'ubuntu1804'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-
-    wrappers:
-      - fdio-infra-wrappers-non-activity-timeout:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - timed: '30 * * * *'
 
     builders:
-      - shell: 'echo "BRANCH_ID={branch-id}" > $WORKSPACE/variables.prop'
-      - inject:
-          properties-file: variables.prop
       - shell:
           !include-raw-escape:
-          - ../scripts/csit/device-semiweekly.sh
+          - ../scripts/setup_executor_env.sh
+      - shell:
+          !include-raw-escape:
+          - ../scripts/csit/device-verify.sh
 
     publishers:
-      - robot:
-          output-path: 'csit/archive'
-          other-files:
-            - '*.*'
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+      - fdio-infra-publish