Skip voting on vpp-csit-verify-device-* jobs
[ci-management.git] / jjb / vpp / vpp.yaml
index bfd0ddd..4b3a132 100644 (file)
+# 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:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 ---
+# PROJECT DEFINITIONS
+#
+# Please keep projects grouped in this order:
+#     vpp-x86_64, vpp-aarch64, vpp-csit
+#
+# NOTES:
+#   - The 'branch-refspec' attribute is used for sandbox testing.
+#         Use the get_gerrit_refspec() bash function in
+#         .../ci-management/extras/bash/sandbox_test_functions.sh
+#         to query gerrit for the refspec of HEAD in a branch.
+#         TODO: see if there is a refspec that works without requiring
+#               use of get_gerrit_refspec and hand entering the result
+#               in the WebUI 'Build With Parameters' gerrit refspec field.
+# [end] NOTES
+
+# VPP-CHECKSTYLE-X86_64 PROJECT
 - project:
-    name: vpp
+    name: vpp-checkstyle-x86_64
     jobs:
-      - 'vpp-verify-{stream}-{os}'
-      - 'vpp-verify-{stream}-debug'
-      - 'vpp-merge-{stream}-{os}'
-
+      - 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
     project: 'vpp'
     os:
-      - ubuntu1804:
-          repo-os-part: 'ubuntu.bionic.main'
-      - centos7:
-          repo-os-part: 'centos7'
-
+      - ubuntu2004
+      - ubuntu2204
     stream:
-      - master:
+      - 'master':
           branch: 'master'
-          repo-stream-part: 'master'
-      - '1904':
-          branch: 'stable/1904'
-          repo-stream-part: 'stable.1904'
-      - '1908':
-          branch: 'stable/1908'
-          repo-stream-part: 'stable.1908'
-      - '2001':
-          branch: 'stable/2001'
-          repo-stream-part: 'stable.2001'
-      - '2005':
-          branch: 'stable/2005'
-          repo-stream-part: 'stable.2005'
+          branch-refspec: ''
+      - '2210':
+          branch: 'stable/2210'
+          branch-refspec: ''
+      - '2302':
+          branch: 'stable/2302'
+          branch-refspec: ''
+      - '2306':
+          branch: 'stable/2306'
+          branch-refspec: ''
+    executor-arch: 'x86_64'
+    exclude:
+      # os deprecated in 23.06
+      - stream: '2306'
+        os: 'ubuntu2004'
+      # os deprecated in 23.02
+      - stream: '2302'
+        os: 'ubuntu2004'
+      # os deprecated in 22.10
+      - stream: '2210'
+        os: 'ubuntu2004'
+      # os deprecated in master
+      - stream: 'master'
+        os: 'ubuntu2004'
+
+# [end] VPP-CHECKSTYLE-X86_64 PROJECT
+
+# VPP-X86_64 PROJECT
+#
+# NOTE: The list of supported branches for each OS are maintained
+#       in .../ci-management/docker/scripts/lib_vpp.sh
+#       The job configuration must be derived from that list, thus
+#       modifications to both should be made at the same time.
+#       Since x86_64 is the primary development architecture, this
+#       project definition should be identical to the docker image
+#       build scripts.  Other architectures may be a subset.
 - project:
-    name: vpp-beta
+    name: vpp-x86_64
     jobs:
-      - 'vpp-beta-verify-{stream}-{os}'
-      - 'vpp-beta-merge-{stream}-{os}'
-
+      - 'vpp-verify-{stream}-{os}-{executor-arch}'
+      - 'vpp-merge-{stream}-{os}-{executor-arch}'
     project: 'vpp'
-    os:
-      - ubuntu2004:
-          repo-os-part: 'ubuntu.focal.main'
-      - centos8:
-          repo-os-part: 'centos8'
-
+    make-parallel-jobs: '4'
     stream:
-      - master:
+      - 'master':
           branch: 'master'
-          repo-stream-part: 'master'
-
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+          make-test-multiworker-os: 'debian-11'
+      - '2210':
+          branch: 'stable/2210'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04'
+          make-test-multiworker-os: 'debian-11'
+      - '2302':
+          branch: 'stable/2302'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+          make-test-multiworker-os: 'debian-11'
+      - '2306':
+          branch: 'stable/2306'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+          make-test-multiworker-os: 'debian-11'
+    os:
+      - debian11
+      - ubuntu2004
+      - ubuntu2204
+    executor-arch: 'x86_64'
+# [end] VPP-X86_64 PROJECT
+
+# VPP-DEBUG-X86_64 PROJECT
+#
+# Currently a periodic job due to intermittent failures.
+# Limiting branches to master, since other branches
+# may not get fixes for the intermittent failures.
+#
 - project:
-    name: vpp-clang
+    name: vpp-debug-x86_64
     jobs:
-      - 'vpp-coverity-{stream}'
-
+      - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
     project: 'vpp'
-    os:
-      - ubuntu1804:
-          repo-os-part: 'ubuntu.bionic.main'
-      - centos7:
-          repo-os-part: 'centos7'
-      - opensuse:
-          repo-os-part: 'opensuse'
-
+    make-parallel-jobs: '4'
+    make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+    comment-trigger-value: 'debug-verify'
     stream:
-      - master:
+      - 'master':
           branch: 'master'
-          repo-stream-part: 'master'
-
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+    os: 'ubuntu2204'
+    executor-arch: 'x86_64'
+
+# [end] VPP-DEBUG-X86_64 PROJECT
+
+# VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
+#
+# Currently a periodic job due to intermittent failures.
+# Limiting branches to master, since other branches
+# may not get fixes for the intermittent failures.
+#
 - project:
-    name: vpp-misc
+    name: vpp-dpdk-rdma-version-mismatch-x86_64
     jobs:
-      - 'vpp-checkstyle-verify-{stream}'
+      - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
     project: 'vpp'
+    make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+    comment-trigger-value: 'dpdk-rdma-version-mismatch'
     stream:
-      - master:
+      - 'master':
           branch: 'master'
-          repo-stream-part: 'master'
-      - '1901':
-          branch: 'stable/1901'
-          repo-stream-part: 'stable.1901'
-      - '1904':
-          branch: 'stable/1904'
-          repo-stream-part: 'stable.1904'
-      - '1908':
-          branch: 'stable/1908'
-          repo-stream-part: 'stable.1908'
-      - '2001':
-          branch: 'stable/2001'
-          repo-stream-part: 'stable.2001'
-      - '2005':
-          branch: 'stable/2005'
-          repo-stream-part: 'stable.2005'
-    os: ubuntu1804
+          # Once per day at 00:15
+          periodicity: '15 0 * * 0-6'
+    os: 'ubuntu2204'
+    executor-arch: 'x86_64'
+
+# [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
 
+# VPP-GCC-X86_64 PROJECT
 - project:
-    name: vpp-perpatch
+    name: vpp-gcc-x86_64
     jobs:
-      - 'vpp-csit-verify-device-{stream}-{device-node-arch}':
-          make-parallel-jobs: '32'
-      - 'vpp-csit-verify-perf-{stream}-{node-arch}'
+      - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
     project: 'vpp'
-    os: ubuntu1804
-    device-executor: 'vpp-csit-device'
-    executor: '{os}-us'
-    skip-vote: 'true'
-    trigger: 'gerrit-trigger-vpp-csit-devicetest-full'
+    make-parallel-jobs: '4'
+    os:
+      - ubuntu2004
+      - ubuntu2204
+    executor-arch: 'x86_64'
     stream:
-      - master:
+      - 'master':
           branch: 'master'
-          repo-stream-part: 'master'
-      - '1904':
-          branch: 'stable/1904'
-          repo-stream-part: 'stable.1904'
-      - '1908':
-          branch: 'stable/1908'
-          repo-stream-part: 'stable.1908'
-      - '2001':
-          branch: 'stable/2001'
-          repo-stream-part: 'stable.2001'
-      - '2005':
-          branch: 'stable/2005'
-          repo-stream-part: 'stable.2005'
-    device-node-arch:
-      - 1n-skx
-      - 1n-tx2:
-          device-executor: 'vpp-csit-arm-ubuntu18'
-          trigger: 'gerrit-trigger-vpp-csit-devicetest-manual'
-    node-arch:
-      - 2n-clx
-      - 2n-skx
-      - 3n-skx
-      - 3n-hsw
-      - 2n-dnv
-      - 3n-dnv
-      - 3n-tsh:
-          executor: 'ubuntu1804arm-s'
-          make-parallel-jobs: '16'
+          branch-refspec: ''
+      - '2210':
+          branch: 'stable/2210'
+          branch-refspec: ''
+      - '2302':
+          branch: 'stable/2302'
+          branch-refspec: ''
+      - '2306':
+          branch: 'stable/2306'
+          branch-refspec: ''
     exclude:
-      - stream: '1904'
-        os: 'ubuntu1804'
-        device-node-arch: '1n-tx2'
-
+      # os deprecated in 23.06
+      - stream: '2306'
+        os: 'ubuntu2004'
+      # os deprecated in 23.02
+      - stream: '2302'
+        os: 'ubuntu2004'
+      # os deprecated in 22.10
+      - stream: '2210'
+        os: 'ubuntu2004'
+      # os deprecated in master
+      - stream: 'master'
+        os: 'ubuntu2004'
+# [end] VPP-GCC-X86_64 PROJECT
+
+# VPP-AARCH64 PROJECT
+#
+# NOTE: The list of supported branches for each OS are maintained
+#       in .../ci-management/docker/scripts/lib_vpp.sh
+#       The job configuration must be derived from that list, thus
+#       modifications to both should be made at the same time.
+#       The AARCH64 architecture is in the process of catching up
+#       with X86_64 in terms of OS coverage.  Thus the jobs are
+#       a subset of those defined in the docker image build script.
 - project:
-    name: vpp-older-only
+    name: vpp-aarch64
     jobs:
-      - 'vpp-historic-verify-{stream}-{os}'
-      - 'vpp-historic-merge-{stream}-{os}'
+      - 'vpp-verify-{stream}-{os}-{executor-arch}'
+      - 'vpp-merge-{stream}-{os}-{executor-arch}'
     project: 'vpp'
+    make-parallel-jobs: '4'
     stream:
-      - '1901':
-          branch: 'stable/1901'
-          repo-stream-part: 'stable.1901'
-      - '1904':
-          branch: 'stable/1904'
-          repo-stream-part: 'stable.1904'
-      - '1908':
-          branch: 'stable/1908'
-          repo-stream-part: 'stable.1908'
-      - '2001':
-          branch: 'stable/2001'
-          repo-stream-part: 'stable.2001'
+      - 'master':
+          branch: 'master'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+          make-test-multiworker-os: ''
+      - '2210':
+          branch: 'stable/2210'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04'
+          make-test-multiworker-os: ''
+      - '2302':
+          branch: 'stable/2302'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+          make-test-multiworker-os: ''
+      - '2306':
+          branch: 'stable/2306'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-20.04 ubuntu-22.04'
+          make-test-multiworker-os: ''
     os:
-      - ubuntu1604:
-          repo-os-part: 'ubuntu.xenial.main'
+      - ubuntu2004
+      - ubuntu2204
+    executor-arch: 'aarch64'
+# [end] VPP-AARCH64 PROJECT
 
+# VPP-CSIT-VERIFY-DEVICE PROJECT
 - project:
-    name: vpp-arm
+    name: vpp-csit-verify-device
     jobs:
-      - 'vpp-arm-verify-{stream}-{os}'
-      - 'vpp-arm-merge-{stream}-{os}'
+      - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
+          make-parallel-jobs: '32'
     project: 'vpp'
     stream:
-      - master:
+      - 'master':
           branch: 'master'
-          repo-stream-part: 'master'
-      - '1901':
-          branch: 'stable/1901'
-          repo-stream-part: 'stable.1901'
-      - '1904':
-          branch: 'stable/1904'
-          repo-stream-part: 'stable.1904'
-      - '1908':
-          branch: 'stable/1908'
-          repo-stream-part: 'stable.1908'
-      - '2001':
-          branch: 'stable/2001'
-          repo-stream-part: 'stable.2001'
-      - '2005':
-          branch: 'stable/2005'
-          repo-stream-part: 'stable.2005'
-    os:
-      - ubuntu1804:
-          repo-os-part: 'ubuntu-arm.bionic.main'
-    make-parallel-jobs: '16'
+          branch-refspec: ''
+      - '2302':
+          branch: 'stable/2302'
+          branch-refspec: ''
+      - '2306':
+          branch: 'stable/2306'
+          branch-refspec: ''
+    testbed-arch:
+      - 1n-skx:
+          os: 'ubuntu2204'
+          executor-arch: 'x86_64'
+          skip-vote: 'true'
+      - 1n-tx2:
+          os: 'ubuntu2204'
+          executor-arch: 'aarch64'
+          skip-vote: 'true'
+# [end] VPP-CSIT-VERIFY-DEVICE PROJECT
 
-# TODO: Merge with (e.g.) vpp-perpatch or similar,
-# when number of stable branches supported matches.
+# VPP-CSIT-VERIFY-PERF PROJECT
+- project:
+    name: vpp-csit-verify-perf
+    jobs:
+      - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
+    project: 'vpp'
+    skip-vote: 'false'
+    stream:
+      - 'master':
+          branch: 'master'
+          branch-refspec: ''
+    testbed-arch:
+      - 2n-icx:
+          os: 'ubuntu2204'
+          executor-arch: 'x86_64'
+      - 2n-clx:
+          os: 'ubuntu2204'
+          executor-arch: 'x86_64'
+      - 2n-spr:
+          os: 'ubuntu2204'
+          executor-arch: 'x86_64'
+      - 2n-zn2:
+          os: 'ubuntu2204'
+          executor-arch: 'x86_64'
+      - 3n-icx:
+          os: 'ubuntu2204'
+          executor-arch: 'x86_64'
+      - 3n-tsh:
+          os: 'ubuntu2204'
+          executor-arch: 'aarch64'
+          make-parallel-jobs: '16'
+      - 3n-alt:
+          os: 'ubuntu2204'
+          executor-arch: 'aarch64'
+          make-parallel-jobs: '16'
+      - 2n-tx2:
+          os: 'ubuntu2204'
+          executor-arch: 'aarch64'
+          make-parallel-jobs: '16'
+      - 3n-snr:
+          os: 'ubuntu2204'
+          executor-arch: 'x86_64'
+# [end] VPP-CSIT-VERIFY-PERF PROJECT
+
+# VPP-CSIT-API-CRC PROJECT
+#
+# Only master and LTS branches are supported.
+#
 - project:
-    name: vpp-api-crc
+    name: vpp-csit-api-crc
     jobs:
-      - 'vpp-csit-verify-api-crc-{stream}'
+      - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
     project: 'vpp'
-    executor: 'vpp-csit-device'
+    executor-arch: 'x86_64'
     skip-vote: 'false'
     stream:
-      # Only master and LTS branches.
-      - '1908':
-          branch: 'stable/1908'
-          repo-stream-part: 'stable.1908'
-      - master:
+      - 'master':
           branch: 'master'
-    os: ubuntu1804
+          branch-refspec: ''
+      - '2302':
+          branch: 'stable/2302'
+          branch-refspec: ''
+      - '2306':
+          branch: 'stable/2306'
+          branch-refspec: ''
+    os:
+      - 'ubuntu2204'
+# [end] VPP-CSIT-API-CRC PROJECT
 
+# LF RELENG VPP PROJECTS
 - project:
     name: vpp-info
     project-name: vpp
     views:
       - project-view
     project-name: vpp
+# [end] LF RELENG VPP PROJECTS
+# [end] PROJECT DEFINITIONS
 
-- job-template:
-    name: 'vpp-historic-verify-{stream}-{os}'
-
-    project-type: freestyle
-    node: '{os}-us'
-    concurrent: true
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
-
-    triggers:
-      - gerrit-trigger-checkstyle:
-          name: '{project}'
-          branch: '{branch}'
-
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
-
-    parameters:
-      - project-parameter:
-          project: '{project}'
-      - gerrit-parameter:
-          branch: '{branch}'
-      - os-parameter:
-          os: '{os}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
-      - stream-parameter:
-          stream: '{stream}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
-
-    scm:
-      - gerrit-trigger-scm:
-          credentials-id: 'jenkins-gerrit-credentials'
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-
-    wrappers:
-      - fdio-infra-wrappers:
-          build-timeout: '75'
-
-    builders:
-      - shell:
-          !include-raw-escape:
-          - ../scripts/setup_vpp_ubuntu_docker_test.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/vpp/build.sh
-
-    publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
-
-- job-template:
-    name: 'vpp-historic-merge-{stream}-{os}'
-
-    project-type: freestyle
-    node: '{os}-us'
-
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
-
-    parameters:
-      - project-parameter:
-          project: '{project}'
-      - gerrit-parameter:
-          branch: '{branch}'
-      - os-parameter:
-          os: '{os}'
-      - maven-project-parameter:
-          maven: 'mvn33-new'
-      - maven-exec:
-          maven-version: 'mvn33-new'
-      - stream-parameter:
-          stream: '{stream}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
-
-    scm:
-      - gerrit-trigger-scm:
-          credentials-id: 'jenkins-gerrit-credentials'
-          refspec: ''
-          choosing-strategy: 'default'
-
-    wrappers:
-      - fdio-infra-wrappers:
-          build-timeout: 120
-
-    triggers:
-      - gerrit-trigger-patch-merged:
-          name: '{project}'
-          branch: '{branch}'
-
-    builders:
-      - config-file-provider:
-          files:
-            - file-id: '.packagecloud'
-              target: '/root'
-      - config-file-provider:
-          files:
-            - file-id: 'packagecloud_api'
-              target: '/root'
-      - shell:
-          !include-raw-escape:
-          - ../scripts/setup_vpp_ubuntu_docker_test.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/vpp/build.sh
-      - provide-maven-settings:
-          settings-file: 'vpp-settings'
-          global-settings-file: 'global-settings'
-      - shell:
-          !include-raw-escape:
-          - ../scripts/packagecloud_push.sh
-
-    publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+# JOB TEMPLATE DEFINITIONS
+#
+# Please keep job templates in the same order as they are referenced
+# in the project definitions above.
 
+# VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
 - job-template:
-    name: 'vpp-arm-verify-{stream}-{os}'
+    name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
 
     project-type: freestyle
-    node: '{os}arm-us'
+    node: 'builder-{os}-prod-{executor-arch}'
     concurrent: true
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
       - os-parameter:
           os: '{os}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
-      - stream-parameter:
-          stream: '{stream}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
-      - gerrit-refspec-parameter
-
-    scm:
-      - gerrit-trigger-scm:
-          credentials-id: 'jenkins-gerrit-credentials'
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-
-    wrappers:
-      - fdio-infra-wrappers:
-          build-timeout: 120
-
-    triggers:
-      - gerrit-trigger-checkstyle:
-          name: '{project}'
-          branch: '{branch}'
-
-    builders:
-      - shell:
-          !include-raw-escape:
-          - ../scripts/setup_vpp_ubuntu_arm_test.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/vpp/arm-build.sh
-
-    publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
-
-- job-template:
-    name: 'vpp-arm-merge-{stream}-{os}'
-
-    project-type: freestyle
-    node: '{os}arm-m'
-
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
-
-    parameters:
-      - project-parameter:
-          project: '{project}'
-      - gerrit-parameter:
-          branch: '{branch}'
-      - os-parameter:
-          os: '{os}'
-      - maven-project-parameter:
-          maven: 'mvn33-new'
-      - maven-exec:
-          maven-version: 'mvn33-new'
-      - stream-parameter:
-          stream: '{stream}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
-
-    scm:
-      - gerrit-trigger-scm:
-          credentials-id: 'jenkins-gerrit-credentials'
-          refspec: ''
-          choosing-strategy: 'default'
-
-    wrappers:
-      - fdio-infra-wrappers:
-          build-timeout: 120
-
-    triggers:
-      - gerrit-trigger-patch-merged:
-          name: '{project}'
-          branch: '{branch}'
-
-    builders:
-      - config-file-provider:
-          files:
-            - file-id: '.packagecloud'
-              target: '/root'
-      - config-file-provider:
-          files:
-            - file-id: 'packagecloud_api'
-              target: '/root'
-      - shell:
-          !include-raw-escape:
-          - ../scripts/setup_vpp_ubuntu_arm_test.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/vpp/arm-build-no-test.sh
-
-      - provide-maven-settings:
-          settings-file: 'vpp-settings'
-          global-settings-file: 'global-settings'
-      - shell:
-          !include-raw-escape:
-          - ../scripts/packagecloud_push.sh
-
-    publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
-
-- job-template:
-    name: 'vpp-checkstyle-verify-{stream}'
-
-    project-type: freestyle
-    node: '{os}-us'
-    concurrent: true
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
-
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: '{build-num-to-keep}'
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
-
-    parameters:
       - project-parameter:
           project: '{project}'
-      - gerrit-parameter:
-          branch: '{branch}'
-      - os-parameter:
-          os: '{os}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.ubuntu.bionic.main'
-      - gerrit-refspec-parameter
 
     scm:
       - gerrit-trigger-scm:
               credential-id: VppApiCompatNotify
               variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
 
-
     triggers:
       - gerrit:
           server-name: 'Primary'
             - draft-published-event
             - comment-added-contains-event:
                 comment-contains-value: 'checkstylecheck'
-            - comment-added-contains-event:
-                comment-contains-value: 'docsonly'
             - comment-added-contains-event:
                 comment-contains-value: 'recheck'
             - comment-added-contains-event:
                 comment-contains-value: 'reverify'
-            # Following two are to cover missing functions of drafts going to review status
+            # Following two are to cover missing functions of drafts
+            # going to review status
             - comment-added-contains-event:
                 comment-contains-value: 'runtest'
             - comment-added-contains-event:
                 - compare-type: REG_EXP
                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
               forbidden-file-paths:
-                - compare-type: REG_EXP
-                  pattern: .*docs\/.*
                 - compare-type: REG_EXP
                   pattern: .*extras\/emacs\/.*
               disable-strict-forbidden-file-verification: 'true'
             notbuilt: false
 
     builders:
+      - shell:
+          !include-raw-escape:
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
           - ../scripts/vpp/checkstyle.sh
       - shell:
           !include-raw-escape:
           - ../scripts/vpp/commitmsg.sh
+      - shell:
+          !include-raw-escape:
+          - ../scripts/vpp/docs_spell.sh
 
     publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+      - fdio-infra-publish
+
+# [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
 
+# VPP-VERIFY JOB TEMPLATE
 - job-template:
-    name: 'vpp-beta-verify-{stream}-{os}'
+    name: 'vpp-verify-{stream}-{os}-{executor-arch}'
 
     project-type: freestyle
-    node: '{os}-us'
+    node: 'builder-{os}-prod-{executor-arch}'
     concurrent: true
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
+      - make-test-os-parameter:
+          make-test-os: '{make-test-os}'
+      - make-test-multiworker-os-parameter:
+          make-test-multiworker-os: '{make-test-multiworker-os}'
       - os-parameter:
           os: '{os}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
+      - project-parameter:
+          project: '{project}'
       - stream-parameter:
           stream: '{stream}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
 
     scm:
       - gerrit-trigger-scm:
           build-timeout: 120
 
     triggers:
-      - gerrit-trigger-manually-triggered:
-          comment-trigger-value: 'betacheck'
+      - gerrit-trigger-checkstyle:
           name: '{project}'
           branch: '{branch}'
 
     builders:
+      - shell:
+          !include-raw-escape:
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
           - ../scripts/setup_vpp_ubuntu_docker_test.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
+          - ../scripts/setup_vpp_ext_deps.sh
       - shell:
           !include-raw-escape:
           - ../scripts/vpp/build.sh
 
     publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+      - fdio-infra-publish
+# [end] VPP-VERIFY JOB TEMPLATE
 
+# VPP-DEBUG-VERIFY JOB TEMPLATE
 - job-template:
-    name: 'vpp-verify-{stream}-{os}'
+    name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
 
     project-type: freestyle
-    node: '{os}-us'
+    node: 'builder-{os}-prod-{executor-arch}'
     concurrent: true
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
+      - make-test-os-parameter:
+          make-test-os: '{make-test-os}'
       - os-parameter:
           os: '{os}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
+      - project-parameter:
+          project: '{project}'
       - stream-parameter:
           stream: '{stream}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
-      - gerrit-refspec-parameter
 
     scm:
       - gerrit-trigger-scm:
 
     wrappers:
       - fdio-infra-wrappers:
-          build-timeout: 120
+          build-timeout: '{build-timeout}'
 
     triggers:
-      - gerrit-trigger-checkstyle:
+      - gerrit-trigger-checkstyle-nonvoting:
           name: '{project}'
           branch: '{branch}'
 
     builders:
+      - shell:
+          !include-raw-escape:
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
           - ../scripts/setup_vpp_ubuntu_docker_test.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
+          - ../scripts/setup_vpp_ext_deps.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/vpp/build.sh
+          - ../scripts/vpp/debug-build.sh
 
     publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+      - fdio-infra-publish
+# [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
 
+# VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
 - job-template:
-    name: 'vpp-verify-{stream}-debug'
+    name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
 
     project-type: freestyle
-    node: 'ubuntu1804-us'
+    node: 'builder-{os}-prod-{executor-arch}'
     concurrent: true
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
 
-    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}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
+      - make-test-os-parameter:
+          make-test-os: '{make-test-os}'
       - os-parameter:
-          os: 'ubuntu1804'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.ubuntu.bionic.main'
+          os: '{os}'
+      - project-parameter:
+          project: '{project}'
       - stream-parameter:
           stream: '{stream}'
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
-      - gerrit-refspec-parameter
 
     scm:
       - gerrit-trigger-scm:
           credentials-id: 'jenkins-gerrit-credentials'
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
+          refspec: ''
+          choosing-strategy: 'default'
 
     wrappers:
       - fdio-infra-wrappers:
           build-timeout: '{build-timeout}'
 
     triggers:
-      - gerrit-trigger-checkstyle-nonvoting:
+      - timed: '{periodicity}'
+      - gerrit-trigger-manually-triggered:
+          comment-trigger-value: '{comment-trigger-value}'
           name: '{project}'
           branch: '{branch}'
 
     builders:
       - shell:
           !include-raw-escape:
-          - ../scripts/setup_vpp_ubuntu_docker_test.sh
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
+          - ../scripts/setup_vpp_ubuntu_docker_test.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/vpp/debug-build.sh
+          - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
 
     publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
-
-- job-template:
-    name: 'vpp-coverity-{stream}'
-
-    project-type: freestyle
-    node: 'ubuntu1804-us'
-    concurrent: true
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
-
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: '{build-num-to-keep}'
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
-
-    parameters:
-      - project-parameter:
-          project: '{project}'
-      - gerrit-parameter:
+      - vpp-dpdk-rdma-version-mismatch:
           branch: '{branch}'
-      - os-parameter:
-          os: 'ubuntu1804'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.ubuntu.bionic.main'
-      - stream-parameter:
-          stream: '{stream}'
-
-    scm:
-      - gerrit-trigger-scm:
-          credentials-id: 'jenkins-gerrit-credentials'
-          refspec: ''
-          choosing-strategy: 'gerrit'
-
-    wrappers:
-      - fdio-infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - timed: '0 14 * * *'
-
-    builders:
-      - shell:
-          command: !include-raw-escape: ../scripts/vpp/coverity.sh
-          unstable-return: 42
-
-    publishers:
-      - email-ext:
-          # yamllint disable-line rule:line-length
-          recipients: 'ejk@cisco.com'
-          reply-to: ''
-          content-type: 'text'
-          subject: 'Coverity run passing as of $BUILD_TIMESTAMP'
-          # yamllint disable-line rule:line-length
-          body: |
-                Coverity run passing.
-
-                ${{FILE,path="output.txt"}}
-          failure: false
-          success: true
-      - email-ext:
-          # yamllint disable-line rule:line-length
-          recipients: 'ejk@cisco.com'
-          reply-to: ''
-          content-type: 'text'
-          subject: 'Coverity run UNSTABLE as of $BUILD_TIMESTAMP'
-          # yamllint disable-line rule:line-length
-          body: |
-                Coverity run UNSTABLE.
-
-                Something went wrong with daily scan.
-          failure: false
-          unstable: true
-      - email-ext:
-          # yamllint disable-line rule:line-length
-          recipients: 'vpp-dev@lists.fd.io, ejk@cisco.com'
-          reply-to: ''
-          content-type: 'text'
-          subject: 'Coverity run FAILED as of $BUILD_TIMESTAMP'
-          # yamllint disable-line rule:line-length
-          body: |
-                Coverity run failed today.
-
-                ${{FILE,path="output.txt"}}
-          failure: true
-      - email-ext:
-          # yamllint disable-line rule:line-length
-          recipients: 'vpp-dev@lists.fd.io, ejk@cisco.com'
-          reply-to: ''
-          content-type: 'text'
-          subject: 'Coverity run as of $BUILD_TIMESTAMP'
-          # yamllint disable-line rule:line-length
-          body: |
-                Coverity run fixed today.
-
-                ${{FILE,path="output.txt"}}
-          failure: false
-          fixed: true
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+      - fdio-infra-publish
+# [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
 
+# VPP-MERGE JOB TEMPLATE
 - job-template:
-    name: 'vpp-merge-{stream}-{os}'
+    name: 'vpp-merge-{stream}-{os}-{executor-arch}'
 
     project-type: freestyle
-    node: '{os}-us'
+    node: 'builder-{os}-prod-{executor-arch}'
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
+      - make-test-os-parameter:
+          make-test-os: '{make-test-os}'
+      - make-test-multiworker-os-parameter:
+          make-test-multiworker-os: '{make-test-multiworker-os}'
       - os-parameter:
           os: '{os}'
-      - maven-project-parameter:
-          maven: 'mvn33-new'
-      - maven-exec:
-          maven-version: 'mvn33-new'
+      - project-parameter:
+          project: '{project}'
       - stream-parameter:
           stream: '{stream}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
 
     scm:
       - gerrit-trigger-scm:
 
     wrappers:
       - fdio-infra-wrappers:
-          build-timeout: '{build-timeout}'
+          build-timeout: 120
 
     triggers:
       - gerrit-trigger-patch-merged:
       - config-file-provider:
           files:
             - file-id: '.packagecloud'
-              target: '/root'
+              target: '/root/.packagecloud'
       - config-file-provider:
           files:
             - file-id: 'packagecloud_api'
-              target: '/root'
+              target: '/root/packagecloud_api'
       - shell:
           !include-raw-escape:
-          - ../scripts/vpp/checkstyle.sh
+          - ../scripts/setup_executor_env.sh
+      - shell:
+          !include-raw-escape:
+          - ../scripts/vpp/commitmsg.sh
       - shell:
           !include-raw-escape:
           - ../scripts/setup_vpp_ubuntu_docker_test.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
+          - ../scripts/setup_vpp_ext_deps.sh
       - shell:
           !include-raw-escape:
           - ../scripts/vpp/build.sh
-      - provide-maven-settings:
-          settings-file: 'vpp-settings'
-          global-settings-file: 'global-settings'
       - shell:
           !include-raw-escape:
           - ../scripts/packagecloud_push.sh
 
     publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+      - fdio-infra-publish
+# [end] VPP-MERGE JOB TEMPLATE
 
+# VPP-GCC-VERIFY JOB TEMPLATE
 - job-template:
-    name: 'vpp-beta-merge-{stream}-{os}'
+    name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
 
     project-type: freestyle
-    node: '{os}-us'
+    node: 'builder-{os}-prod-{executor-arch}'
+    concurrent: true
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
       - gerrit-parameter:
           branch: '{branch}'
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
       - os-parameter:
           os: '{os}'
-      - maven-project-parameter:
-          maven: 'mvn33-new'
-      - maven-exec:
-          maven-version: 'mvn33-new'
+      - project-parameter:
+          project: '{project}'
       - stream-parameter:
           stream: '{stream}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
 
     scm:
       - gerrit-trigger-scm:
           credentials-id: 'jenkins-gerrit-credentials'
-          refspec: ''
-          choosing-strategy: 'default'
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
 
     wrappers:
       - fdio-infra-wrappers:
-          build-timeout: '{build-timeout}'
+          build-timeout: 120
 
     triggers:
-      - gerrit-trigger-manually-triggered:
-          comment-trigger-value: 'betamerge'
+      - gerrit-trigger-checkstyle:
           name: '{project}'
           branch: '{branch}'
 
     builders:
-      - config-file-provider:
-          files:
-            - file-id: '.packagecloud'
-              target: '/root'
-      - config-file-provider:
-          files:
-            - file-id: 'packagecloud_api'
-              target: '/root'
       - shell:
           !include-raw-escape:
-          - ../scripts/vpp/checkstyle.sh
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
           - ../scripts/setup_vpp_ubuntu_docker_test.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
+          - ../scripts/setup_vpp_ext_deps.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/vpp/build.sh
-      - provide-maven-settings:
-          settings-file: 'vpp-settings'
-          global-settings-file: 'global-settings'
-      - shell:
-          !include-raw-escape:
-          - ../scripts/packagecloud_push.sh
+          - ../scripts/vpp/gcc-build.sh
 
     publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+      - fdio-infra-publish
+# [end] VPP-GCC-VERIFY JOB TEMPLATE
 
+# VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
 - job-template:
-    name: 'vpp-csit-verify-device-{stream}-{device-node-arch}'
+    name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
     description: |
       <ul>
           <li>executor
               <ul>
-                  <li>{device-executor}
+                  <li>csit-builder-{os}-prod-{executor-arch}
+              </ul>
+          <li>testbed architecture
+              <ul>
+                  <li>{testbed-arch}
               </ul>
       </ul>
 
     project-type: freestyle
-    node: '{device-executor}'
+    node: 'csit-builder-{os}-prod-{executor-arch}'
     concurrent: true
-    archive-artifacts: '**/csit_current/**/*.*'
     latest-only: false
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
+      - gerrit-csit-refspec-parameter
+      - gerrit-event-comment-text-parameter
+      - gerrit-event-type-parameter
       - gerrit-parameter:
           branch: '{branch}'
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
+      - make-parallel-jobs-parameter:
+          make-parallel-jobs: '{make-parallel-jobs}'
       - os-parameter:
           os: '{os}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.ubuntu.bionic.main'
-      - gerrit-refspec-parameter
-      - gerrit-event-type-parameter
-      - gerrit-event-comment-text-parameter
-      - gerrit-csit-refspec-parameter
+      - project-parameter:
+          project: '{project}'
       - stream-parameter:
           stream: '{stream}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
 
     scm:
       - gerrit-trigger-scm:
           build-timeout: '90'
 
     triggers:
-      - '{trigger}':
+      - 'gerrit-trigger-vpp-csit-devicetest-full':
           name: '{project}'
           branch: '{branch}'
           skip-vote: '{skip-vote}'
 
     builders:
+      - shell:
+          !include-raw-escape:
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
           - ../scripts/setup_vpp_ubuntu_docker_test.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
+          - ../scripts/setup_vpp_ext_deps.sh
       - shell:
           !include-raw-escape:
           - ../scripts/vpp/csit-device.sh
 
     publishers:
-      - robot-report:
-          output-path: 'csit_current/'
-
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+      - fdio-infra-publish
+# [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
 
+# VPP-CSIT-VERIFY-PERF JOB TEMPLATE
 - job-template:
-    name: 'vpp-csit-verify-perf-{stream}-{node-arch}'
+    name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
     description: |
       <ul>
           <li>executor
               <ul>
-                  <li>{executor}
+                  <li>builder-{os}-prod-{executor-arch}
+              </ul>
+          <li>testbed architecture
+              <ul>
+                  <li>{testbed-arch}
               </ul>
           <li>Objective
           Contrary to csit-vpp job, this also measures the parent performance,
       </ul>
 
     project-type: freestyle
-    node: '{executor}'
+    node: 'builder-{os}-prod-{executor-arch}'
     concurrent: true
-    archive-artifacts: >
-      **/csit_current/**/*.*
-      **/csit_parent/**/*.*
     latest-only: false
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
-      - gerrit-parameter:
-          branch: '{branch}'
-      - os-parameter:
-          os: '{os}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.ubuntu.bionic.main'
-      - gerrit-refspec-parameter
-      - gerrit-event-type-parameter
-      - gerrit-event-comment-text-parameter
-      - gerrit-csit-refspec-parameter
       - csit-perf-trial-duration-parameter:
           csit-perf-trial-duration: "10.0"
       - csit-perf-trial-multiplicity-parameter:
           csit-perf-trial-multiplicity: "5"
-      - stream-parameter:
-          stream: '{stream}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
+      - gerrit-csit-refspec-parameter
+      - gerrit-event-comment-text-parameter
+      - gerrit-event-type-parameter
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
+      - gerrit-parameter:
+          branch: '{branch}'
       - make-parallel-jobs-parameter:
           make-parallel-jobs: '{make-parallel-jobs}'
+      - os-parameter:
+          os: '{os}'
+      - project-parameter:
+          project: '{project}'
+      - stream-parameter:
+          stream: '{stream}'
 
     scm:
       - gerrit-trigger-scm:
       - gerrit-trigger-csit-perftest:
           project: '{project}'
           branch: '{branch}'
-          trigger-word: 'perftest-{node-arch}'
+          trigger-word: 'perftest-{testbed-arch}'
           skip-vote: true
 
     builders:
+      - shell:
+          !include-raw-escape:
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
           - ../scripts/setup_vpp_ubuntu_docker_test.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/setup_vpp_dpdk_dev_env.sh
+          - ../scripts/setup_vpp_ext_deps.sh
       - shell:
           !include-raw-escape:
           - ../scripts/vpp/csit-perf.sh
 
     publishers:
-      - robot-report:
-          output-path: 'csit_current/0/'
-
-      - lf-infra-publish
-
+      - postbuildscript:
+          # Can be removed when all CSIT branches use correct archive directory.
+          builders:
+            - build-on:
+                - ABORTED
+                - FAILURE
+                - NOT_BUILT
+                - SUCCESS
+                - UNSTABLE
+              build-steps:
+                - shell:
+                    !include-raw-escape:
+                    - ../scripts/vpp/copy_archives.sh
+      - fdio-infra-publish
+# [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
+
+# VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
 - job-template:
-    name: 'vpp-csit-verify-api-crc-{stream}'
+    name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
 
     project-type: freestyle
-    node: '{os}-us'
+    node: 'builder-{os}-prod-{executor-arch}'
     concurrent: true
-    archive-artifacts: ''
     latest-only: false
 
-    build-discarder:
-      daysToKeep: '{build-days-to-keep}'
-      numToKeep: 100
-      artifactDaysToKeep: '{build-artifact-days-to-keep}'
-      artifactNumToKeep: '{build-artifact-num-to-keep}'
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
 
+    # Please keep parameters in alphabetical order
     parameters:
-      - project-parameter:
-          project: '{project}'
-      - gerrit-parameter:
-          branch: '{branch}'
-      - gerrit-refspec-parameter
-      - gerrit-csit-refspec-parameter
-      - stream-parameter:
-          stream: '{stream}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: '{archive-artifacts}'
-          description: Artifacts to archive to the logs server.
       # Not sure whether not failing has any useful usage,
       # but it does not hurt to have some flexibility for future.
       - csit-fail-on-crc-mismatch-parameter:
           fail-on-crc-mismatch: 'True'
+      - gerrit-csit-refspec-parameter
+      - gerrit-parameter:
+          branch: '{branch}'
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
+      - project-parameter:
+          project: '{project}'
+      - stream-parameter:
+          stream: '{stream}'
 
     scm:
       - gerrit-trigger-scm:
           build-timeout: 300
 
     triggers:
-      # TODO: Make other verify jobs trigger on success of this one,
-      # without breaking verification for VPP branches before stable/1908.
       - gerrit-trigger-checkstyle:
           name: '{project}'
           branch: '{branch}'
 
     builders:
+      - shell:
+          !include-raw-escape:
+          - ../scripts/setup_executor_env.sh
       - shell:
           !include-raw-escape:
           - ../scripts/setup_vpp_ubuntu_docker_test.sh
       - shell:
           !include-raw-escape:
           - ../scripts/vpp/check_crc.sh
-      # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
+    # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
 
     publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn36'
+      - fdio-infra-publish
+# [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
+# [end] JOB TEMPLATE DEFINITIONS