Change 'make test' os on VPP/master to ubuntu-20.04
[ci-management.git] / jjb / vpp / vpp.yaml
index cb31378..c44a4e0 100644 (file)
 #     vpp-x86_64, vpp-aarch64, vpp-csit
 #
 # NOTES:
-#   - The 'branch-head-refspec' attribute is used for sandbox testing.
+#   - The 'branch-refspec' attribute is used for sandbox testing.
 #         Use the get_gerrit_refspec() bash function in
-#         .../ci-management/docker/scripts/lib_common.sh
+#         .../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.
-#   - Use the following to import get_gerrit_refspec into a bash shell
-#         from the ci-management directory:
-#         $ eval "$(grep -A12 get_gerrit ./docker/scripts/lib_common.sh)"
 # [end] NOTES
 
 # VPP-CHECKSTYLE-X86_64 PROJECT
     stream:
       - master:
           branch: 'master'
+          branch-refspec: ''
           os: 'ubuntu2004'
           repo-stream-part: 'master'
-          branch-head-refspec: ''
       - '2009':
           branch: 'stable/2009'
+          branch-refspec: ''
           os: 'ubuntu1804'
           repo-stream-part: 'stable.2009'
-          branch-head-refspec: ''
           os: 'ubuntu1804'
       - '2101':
           branch: 'stable/2101'
+          branch-refspec: ''
           os: 'ubuntu1804'
           repo-stream-part: 'stable.2101'
-          branch-head-refspec: ''
     executor-arch: 'x86_64'
 # [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-x86_64
     jobs:
       - 'vpp-merge-{stream}-{os}-{executor-arch}'
     project: 'vpp'
     make-parallel-jobs: '4'
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+    make-test-os: 'ubuntu-20.04'
+    archive-artifacts: '/tmp/vpp-failed-unittests/*/*'
     stream:
       - master:
           branch: 'master'
+          branch-refspec: ''
           repo-stream-part: 'master'
-          branch-head-refspec: ''
       - '2009':
           branch: 'stable/2009'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-18.04'
           repo-stream-part: 'stable.2009'
-          branch-head-refspec: ''
       - '2101':
           branch: 'stable/2101'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-18.04'
           repo-stream-part: 'stable.2101'
-          branch-head-refspec: ''
-    os:
-      - ubuntu1804:
-          repo-os-part: 'ubuntu.bionic.main'
-    executor-arch: 'x86_64'
-# [end] VPP-X86_64 PROJECT
-
-# VPP-OS-EOL-X86_64 PROJECT
-- project:
-    name: vpp-os-eol-x86_64
-    jobs:
-      - 'vpp-verify-{stream}-{os}-{executor-arch}'
-      - 'vpp-merge-{stream}-{os}-{executor-arch}'
-    project: 'vpp'
-    make-parallel-jobs: '4'
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
-    stream:
-      - '2009':
-          branch: 'stable/2009'
-          repo-stream-part: 'stable.2009'
-          branch-head-refspec: ''
     os:
       - centos7:
           repo-os-part: 'centos7'
-      - debian9:
-          repo-os-part: 'stretch'
-    executor-arch: 'x86_64'
-# [end] VPP-OS-EOL-X86_64 PROJECT
-
-# VPP-OS-IN-2009-X86_64 PROJECT
-#
-# This project is used to separate streams which are only
-# supported on the OS in the release in which it was added
-# or later releases.
-#
-# For each 'os-in-XXXX', the stream for the release is
-# added here in addition to the 'vpp-x86_64' project.
-# Each subsequent release is also added to both.
-#
-# When all of the streams older than the 'os-in-XXXX" have
-# been removed from the 'vpp-x86_64' project, then the OSes
-# in this project get moved to the 'vpp-x86_64' project and
-# this project gets deleted or commented out if it is only
-# 'os-in-XXXX' project.
-#
-- project:
-    name: vpp-os-in-2009-x86_64
-    jobs:
-      - 'vpp-verify-{stream}-{os}-{executor-arch}'
-      - 'vpp-merge-{stream}-{os}-{executor-arch}'
-    project: 'vpp'
-    make-parallel-jobs: '4'
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
-    stream:
-      - master:
-          branch: 'master'
-          repo-stream-part: 'master'
-          branch-head-refspec: ''
-      - '2009':
-          branch: 'stable/2009'
-          repo-stream-part: 'stable.2009'
-          branch-head-refspec: ''
-      - '2101':
-          branch: 'stable/2101'
-          repo-stream-part: 'stable.2101'
-          branch-head-refspec: ''
-    os:
       - centos8:
           repo-os-part: 'centos8'
+      - debian9:
+          repo-os-part: 'stretch'
       - debian10:
           repo-os-part: 'buster'
+      - ubuntu1804:
+          repo-os-part: 'ubuntu.bionic.main'
       - ubuntu2004:
           repo-os-part: 'ubuntu.focal.main'
     executor-arch: 'x86_64'
-# [end] VPP-OS-IN-2009-X86_64 PROJECT
+    exclude:
+      # OS deprecated in master
+      - stream: 'master'
+        os: 'centos7'
+      - stream: 'master'
+        os: 'debian9'
+      # 2009 LTS supports all OS variants
+      # OS deprecated in 2101
+      - stream: '2101'
+        os: 'centos7'
+      - stream: '2101'
+        os: 'debian9'
+# [end] VPP-X86_64 PROJECT
 
 # VPP-DEBUG-X86_64 PROJECT
 #
-# Currently a Non-Voting job due to intermittent failures.
+# Currently a periodic job due to intermittent failures.
 # Limiting branches to master and 2009, since other branches
 # may not get fixes for the intermittent failures.
 #
       - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
     project: 'vpp'
     make-parallel-jobs: '4'
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+    make-test-os: 'ubuntu-20.04'
+    archive-artifacts: '/tmp/vpp-failed-unittests/*/*'
+    comment-trigger-value: 'debug-verify'
     stream:
       - master:
           branch: 'master'
+          branch-refspec: ''
+          # Once per hour
+          periodicity: 'H * * * *'
           repo-stream-part: 'master'
-          branch-head-refspec: ''
       - '2009':
           branch: 'stable/2009'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-18.04'
+          # Once per day
+          periodicity: 'H H * * *'
           repo-stream-part: 'stable.2009'
-          branch-head-refspec: ''
     os:
       - ubuntu2004:
           repo-os-part: 'ubuntu.focal.main'
     executor-arch: 'x86_64'
 # [end] VPP-DEBUG-X86_64 PROJECT
 
-# VPP-BETA-X86_64 PROJECT
-#
-# Beta jobs are experimental jobs for testing new OS versions on master.
-#
-# They are only manually triggered.  Either using the Jenkins WebUI
-# 'Build with Parameters' to run a single job or adding 'vpp-beta-verify'
-# or 'vpp-beta-merge' as a comment to run all beta verify or merge jobs.
-#
-# Once testing  is complete, the os is moved to the current
-# 'vpp-os-in-XXXX-x86_64' project. If no OSes are being
-# tested then this project should be commented out.
-#
-#- project:
-#    name: vpp-beta-x86_64
-#    jobs:
-#      - 'vpp-beta-verify-{stream}-{os}-{executor-arch}':
-#          comment-trigger-value: 'vpp-beta-verify'
-#      - 'vpp-beta-merge-{stream}-{os}-{executor-arch}':
-#          comment-trigger-value: 'vpp-beta-merge'
-#    project: 'vpp'
-#    make-parallel-jobs: '4'
-#    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
-#    stream:
-#      - master:
-#          branch: 'master'
-#          repo-stream-part: 'master'
-#          branch-head-refspec: ''
-#    os:
-#      - debian10:
-#          repo-os-part: 'buster'
-#    executor-arch: x86_64
-# [end] VPP-BETA-X86_64 PROJECT
-
 # VPP-GCC-X86_64 PROJECT
 - project:
     name: vpp-gcc-x86_64
     stream:
       - master:
           branch: 'master'
+          branch-refspec: ''
           repo-stream-part: 'master'
-          branch-head-refspec: ''
       - '2009':
           branch: 'stable/2009'
+          branch-refspec: ''
           repo-stream-part: 'stable.2009'
-          branch-head-refspec: ''
       - '2101':
           branch: 'stable/2101'
+          branch-refspec: ''
           repo-stream-part: 'stable.2101'
-          branch-head-refspec: ''
 # [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-aarch64
     jobs:
       - 'vpp-merge-{stream}-{os}-{executor-arch}'
     project: 'vpp'
     make-parallel-jobs: '16'
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+    make-test-os: 'ubuntu-20.04'
+    archive-artifacts: '/tmp/vpp-failed-unittests/*/*'
     stream:
       - master:
           branch: 'master'
+          branch-refspec: ''
           repo-stream-part: 'master'
-          branch-head-refspec: ''
       - '2009':
           branch: 'stable/2009'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-18.04'
           repo-stream-part: 'stable.2009'
-          branch-head-refspec: ''
       - '2101':
           branch: 'stable/2101'
+          branch-refspec: ''
+          make-test-os: 'ubuntu-18.04'
           repo-stream-part: 'stable.2101'
-          branch-head-refspec: ''
     os:
       - centos8:
           repo-os-part: 'centos8'
       - ubuntu1804:
           repo-os-part: 'ubuntu-arm.bionic.main'
+      - ubuntu2004:
+          repo-os-part: 'ubuntu.focal.main'
     executor-arch: 'aarch64'
     exclude:
       # OS introduced after 2009
       - stream: '2009'
         os: 'centos8'
+      - stream: '2009'
+        os: 'ubuntu2004'
       # OS introduced after 2101
       - stream: '2101'
         os: 'centos8'
+      - stream: '2101'
+        os: 'ubuntu2004'
 # [end] VPP-AARCH64 PROJECT
 
-# VPP-OS-IN-2009-AARCH64 PROJECT
-#
-# This project is used to separate streams which are only
-# supported on the OS in the release in which it was added
-# or later releases.
-#
-# For each 'os-in-XXXX', the stream for the release is
-# added here in addition to the 'vpp-aarch64' project.
-# Each subsequent release is also added to both.
-#
-# When all of the streams older than the 'os-in-XXXX" have
-# been removed from the 'vpp-aarch64' project, then the OSes
-# in this project get moved to the 'vpp-aarch64' project and
-# this project gets deleted or commented out if it is only
-# 'os-in-XXXX' project.
-#
-#- project:
-#    name: vpp-os-in-2009-aarch64
-#    jobs:
-#      - 'vpp-verify-{stream}-{os}-{executor-arch}'
-#      - 'vpp-merge-{stream}-{os}-{executor-arch}'
-#
-#    project: 'vpp'
-#    make-parallel-jobs: '16'
-#    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
-#    stream:
-#      - master:
-#          branch: 'master'
-#          repo-stream-part: 'master'
-#          branch-head-refspec: ''
-#      - '2009':
-#          branch: 'stable/2009'
-#          repo-stream-part: 'stable.2009'
-#          branch-head-refspec: ''
-#    os:
-#      - ubuntu2004:
-#          repo-os-part: 'ubuntu.focal.main'
-#    executor-arch: 'aarch64'
-# [end] VPP-OS-IN-2009-AARCH64 PROJECT
-
-# VPP-BETA-AARCH64 PROJECT
-#
-# Beta jobs are experimental jobs for testing new OS versions on master.
-#
-# They are only manually triggered.  Either using the Jenkins WebUI
-# 'Build with Parameters' to run a single job or adding 'vpp-beta-verify'
-# or 'vpp-beta-merge' as a comment to run all beta verify or merge jobs.
-#
-# Once testing  is complete, the os is moved to the current
-# 'vpp-os-in-XXXX-aarch64' project. If no OSes are being
-# tested then this project should be commented out.
-#
-- project:
-    name: vpp-beta-aarch64
-    jobs:
-      - 'vpp-beta-verify-{stream}-{os}-{executor-arch}':
-          comment-trigger-value: 'beta-verify'
-      - 'vpp-beta-merge-{stream}-{os}-{executor-arch}':
-          comment-trigger-value: 'beta-merge'
-    project: 'vpp'
-    make-parallel-jobs: '16'
-    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
-    stream:
-      - master:
-          branch: 'master'
-          repo-stream-part: 'master'
-          branch-head-refspec: ''
-    os:
-      - ubuntu2004:
-          repo-os-part: 'ubuntu.focal.main'
-    executor-arch: aarch64
-# [end] VPP-BETA-AARCH64 PROJECT
-
-# VPP-CSIT-PERPATCH PROJECT
+# VPP-CSIT-VERIFY PROJECT
 - project:
-    name: vpp-csit-perpatch
+    name: vpp-csit-verify
     jobs:
-      - 'vpp-csit-verify-device-{stream}-{device-node-arch}':
+      - 'vpp-csit-verify-device-perpatch':
           make-parallel-jobs: '32'
+          exclude:
+            - device-node-arch: '1n-tx2'
+      - 'vpp-csit-verify-device-periodic':
+          make-parallel-jobs: '32'
+          periodicity: 'H * * * *'
+          skip-vote: 'true'
+          comment-trigger-value: 'devicetest-periodic'
+          exclude:
+            - stream: '2009'
+            - stream: '2101'
+            - device-node-arch: '1n-skx'
       - 'vpp-csit-verify-perf-{stream}-{node-arch}'
     project: 'vpp'
     os: ubuntu1804
     stream:
       - master:
           branch: 'master'
+          branch-refspec: ''
           repo-stream-part: 'master'
       - '2009':
           branch: 'stable/2009'
+          branch-refspec: ''
           repo-stream-part: 'stable.2009'
       - '2101':
           branch: 'stable/2101'
+          branch-refspec: ''
           repo-stream-part: 'stable.2101'
     device-node-arch:
       - 1n-skx
       - 1n-tx2:
           device-executor: 'vpp-csit-arm-ubuntu18'
-          skip-vote: 'true'
     node-arch:
       - 2n-clx
       - 2n-skx
           executor: 'ubuntu1804arm-s'
           make-parallel-jobs: '16'
 
-# [end] VPP-CSIT-PERPATCH PROJECT
+# [end] VPP-CSIT-VERIFY PROJECT
 
 # VPP-CSIT-API-CRC PROJECT
 #
     executor: 'vpp-csit-device'
     skip-vote: 'false'
     stream:
+      - master:
+          branch: 'master'
+          branch-refspec: ''
       - '2009':
           branch: 'stable/2009'
+          branch-refspec: ''
           repo-stream-part: 'stable.2009'
       - '2101':
           branch: 'stable/2101'
+          branch-refspec: ''
           repo-stream-part: 'stable.2101'
-      - master:
-          branch: 'master'
     os: ubuntu1804
 # [end] VPP-CSIT-API-CRC PROJECT
 
       - gerrit-parameter:
           branch: '{branch}'
       - gerrit-refspec-parameter:
-          refspec: '{branch-head-refspec}'
+          refspec: '{branch-refspec}'
       - os-parameter:
           os: '{os}'
       - project-parameter:
       - gerrit-parameter:
           branch: '{branch}'
       - gerrit-refspec-parameter:
-          refspec: '{branch-head-refspec}'
+          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}'
       - project-parameter:
       - gerrit-parameter:
           branch: '{branch}'
       - gerrit-refspec-parameter:
-          refspec: '{branch-head-refspec}'
+          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: 'ubuntu1804'
       - project-parameter:
           build-timeout: '{build-timeout}'
 
     triggers:
-      # TODO: Ensure all supported jobs pass reliably before
-      #       enabling voting.
-      - gerrit-trigger-checkstyle-nonvoting:
+      - timed: '{periodicity}'
+      - gerrit-trigger-manually-triggered:
+          comment-trigger-value: '{comment-trigger-value}'
           name: '{project}'
           branch: '{branch}'
 
 
     publishers:
       - fdio-infra-publish
-# [end] VPP-DEBUG-VERIFY JOB TEMPLATE
+# [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
 
 # VPP-MERGE JOB TEMPLATE
 - job-template:
           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: '{os}'
       - project-parameter:
       - fdio-infra-publish
 # [end] VPP-MERGE JOB TEMPLATE
 
-# VPP-BETA-VERIFY JOB TEMPLATE
+# VPP-GCC-VERIFY JOB TEMPLATE
 - job-template:
-    name: 'vpp-beta-verify-{stream}-{os}-{executor-arch}'
+    name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
 
     project-type: freestyle
     node: 'builder-{os}-prod-{executor-arch}'
       - gerrit-parameter:
           branch: '{branch}'
       - gerrit-refspec-parameter:
-          refspec: '{branch-head-refspec}'
+          refspec: '{branch-refspec}'
       - make-parallel-jobs-parameter:
           make-parallel-jobs: '{make-parallel-jobs}'
       - os-parameter:
           build-timeout: 120
 
     triggers:
-      - gerrit-trigger-manually-triggered:
-          comment-trigger-value: '{comment-trigger-value}'
+      - gerrit-trigger-checkstyle:
           name: '{project}'
           branch: '{branch}'
 
           - ../scripts/setup_vpp_dpdk_dev_env.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/vpp/build.sh
+          - ../scripts/vpp/gcc-build.sh
 
     publishers:
       - fdio-infra-publish
-# [end] VPP-BETA-VERIFY JOB TEMPLATE
+# [end] VPP-GCC-VERIFY JOB TEMPLATE
 
-# VPP-BETA-MERGE JOB TEMPLATE
+# VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
 - job-template:
-    name: 'vpp-beta-merge-{stream}-{os}-{executor-arch}'
+    name: 'vpp-csit-verify-device-{stream}-{device-node-arch}'
+    id: 'vpp-csit-verify-device-periodic'
+    description: |
+      <ul>
+          <li>executor
+              <ul>
+                  <li>{device-executor}
+              </ul>
+      </ul>
 
     project-type: freestyle
-    node: 'builder-{os}-prod-{executor-arch}'
+    node: '{device-executor}'
+    concurrent: true
+    archive-artifacts: '**/csit_current/**/*.*'
+    latest-only: false
 
     build-discarder:
       daysToKeep: '{build-days-to-keep}'
 
     # Please keep parameters in alphabetical order
     parameters:
+      - archive-artifacts-parameter:
+          artifacts: '{archive-artifacts}'
+      - 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:
       - project-parameter:
           project: '{project}'
       - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
+          repo-name: '{repo-stream-part}.ubuntu.bionic.main'
       - stream-parameter:
           stream: '{stream}'
-      - workspace-archive-artifacts-parameter:
-          artifacts: '{archive-artifacts}'
 
     scm:
       - gerrit-trigger-scm:
           credentials-id: 'jenkins-gerrit-credentials'
-          refspec: ''
+          refspec: '$GERRIT_REFSPEC'
           choosing-strategy: 'default'
 
     wrappers:
       - fdio-infra-wrappers:
-          build-timeout: '{build-timeout}'
+          build-timeout: '90'
 
     triggers:
+      - timed: '{periodicity}'
       - gerrit-trigger-manually-triggered:
           comment-trigger-value: '{comment-trigger-value}'
           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_executor_env.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/vpp/checkstyle.sh
       - shell:
           !include-raw-escape:
           - ../scripts/setup_vpp_ubuntu_docker_test.sh
           - ../scripts/setup_vpp_dpdk_dev_env.sh
       - shell:
           !include-raw-escape:
-          - ../scripts/vpp/build.sh
-      - shell:
-          !include-raw-escape:
-          - ../scripts/packagecloud_push.sh
+          - ../scripts/vpp/csit-device.sh
 
     publishers:
-      - fdio-infra-publish
-# [end] VPP-BETA-MERGE JOB TEMPLATE
-
-# VPP-GCC-VERIFY JOB TEMPLATE
-- job-template:
-    name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
-
-    project-type: freestyle
-    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}'
-
-    # Please keep parameters in alphabetical order
-    parameters:
-      - gerrit-parameter:
-          branch: '{branch}'
-      - gerrit-refspec-parameter:
-          refspec: '{branch-head-refspec}'
-      - make-parallel-jobs-parameter:
-          make-parallel-jobs: '{make-parallel-jobs}'
-      - os-parameter:
-          os: '{os}'
-      - project-parameter:
-          project: '{project}'
-      - repo-name-parameter:
-          repo-name: '{repo-stream-part}.{repo-os-part}'
-      - stream-parameter:
-          stream: '{stream}'
-      - workspace-archive-artifacts-parameter:
-          artifacts: '{archive-artifacts}'
-
-    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_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
-      - shell:
-          !include-raw-escape:
-          - ../scripts/vpp/gcc-build.sh
+      - robot-report:
+          output-path: 'archives'
 
-    publishers:
-      - fdio-infra-publish
-# [end] VPP-GCC-VERIFY JOB TEMPLATE
+      - fdio-infra-shiplogs:
+          maven-version: 'mvn36'
+# [end] VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
 
-# VPP-CSIT-VERIFY-DEVICE JOB TEMPLATE
+# VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
 - job-template:
     name: 'vpp-csit-verify-device-{stream}-{device-node-arch}'
+    id: 'vpp-csit-verify-device-perpatch'
     description: |
       <ul>
           <li>executor
       - gerrit-event-type-parameter
       - gerrit-parameter:
           branch: '{branch}'
-      - gerrit-refspec-parameter
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
       - make-parallel-jobs-parameter:
           make-parallel-jobs: '{make-parallel-jobs}'
       - os-parameter:
 
       - fdio-infra-shiplogs:
           maven-version: 'mvn36'
-# [end] VPP-CSIT-VERIFY-DEVICE JOB TEMPLATE
+# [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
 
 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
 - job-template:
       - gerrit-csit-refspec-parameter
       - gerrit-event-comment-text-parameter
       - gerrit-event-type-parameter
-      - gerrit-refspec-parameter
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
       - gerrit-parameter:
           branch: '{branch}'
       - make-parallel-jobs-parameter:
       - gerrit-csit-refspec-parameter
       - gerrit-parameter:
           branch: '{branch}'
-      - gerrit-refspec-parameter
+      - gerrit-refspec-parameter:
+          refspec: '{branch-refspec}'
       - project-parameter:
           project: '{project}'
       - stream-parameter: