Merge "CSIT: unpin wagon version"
[ci-management.git] / jjb / vpp / vpp.yaml
index 1a31920..fb5af2d 100644 (file)
       - '1904':
           branch: 'stable/1904'
           repo-stream-part: 'stable.1904'
+      - '1908':
+          branch: 'stable/1908'
+          repo-stream-part: 'stable.1908'
 
 - project:
     name: vpp-clang
     jobs:
       - 'vpp-verify-{stream}-clang'
+      - 'vpp-coverity-{stream}'
 
     project: 'vpp'
     os:
       - '1904':
           branch: 'stable/1904'
           repo-stream-part: 'stable.1904'
+      - '1908':
+          branch: 'stable/1908'
+          repo-stream-part: 'stable.1908'
     os: ubuntu1604
 
 - project:
     name: vpp-perpatch
     jobs:
-      - 'vpp-csit-verify-device-{stream}-1n-skx'
+      - 'vpp-csit-verify-device-{stream}-{device-node-arch}'
       - 'vpp-csit-verify-perf-{stream}-{node-arch}'
     project: 'vpp'
+    executor: 'vpp-csit-device'
+    skip-vote: 'true'
+    trigger: 'gerrit-trigger-csit-devicetest-full'
     stream:
       - master:
           branch: 'master'
       - '1904':
           branch: 'stable/1904'
           repo-stream-part: 'stable.1904'
+      - '1908':
+          branch: 'stable/1908'
+          repo-stream-part: 'stable.1908'
     os: ubuntu1804
+    device-node-arch:
+      - 1n-skx
+      - 1n-tx2:
+          executor: 'vpp-csit-arm-ubuntu18'
+          trigger: 'gerrit-trigger-csit-devicetest-manual'
     node-arch:
       - 2n-skx
       - 3n-skx
       - 3n-hsw
+    exclude:
+      - stream: '1904'
+        os: 'ubuntu1804'
+        device-node-arch: '1n-tx2'
 
 - project:
     name: vpp-master-only
       - '1904':
           branch: 'stable/1904'
           repo-stream-part: 'stable.1904'
+      - '1908':
+          branch: 'stable/1908'
+          repo-stream-part: 'stable.1908'
     os:
       - ubuntu1804:
           repo-os-part: 'ubuntu.bionic.main'
       - '1904':
           branch: 'stable/1904'
           repo-stream-part: 'stable.1904'
+      - '1908':
+          branch: 'stable/1908'
+          repo-stream-part: 'stable.1908'
     os:
       - ubuntu1804:
           repo-os-part: 'ubuntu-arm.bionic.main'
 
+# TODO: Merge with (e.g.) vpp-perpatch or similar,
+# when number of stable branches supported matches.
+- project:
+    name: vpp-api-crc
+    jobs:
+      - 'vpp-csit-verify-api-crc-{stream}'
+    project: 'vpp'
+    executor: 'vpp-csit-device'
+    skip-vote: 'false'
+    stream:
+      # TODO: Add stable/1908 when it is created.
+      - master:
+          branch: 'master'
+    os: ubuntu1804
+
+- project:
+    name: vpp-info
+    project-name: vpp
+    jobs:
+      - gerrit-info-yaml-verify
+    build-node: centos7-builder-4c-4g
+    project: vpp
+    branch: master
+
 - project:
     name: vpp-view
     views:
     project-type: freestyle
     node: '{os}-us'
     concurrent: true
-    archive-artifacts: >
-      **/build-root/*.rpm
-      **/build-root/*.deb
-      **/dpdk/*.rpm
-      **/dpdk/*.deb
-      **/tmp/vpp-failed-unittests/*/* **/core
-    allow-empty: 'true'
-    fingerprint: false
-    only-if-success: true
-    default-excludes: false
+    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
 
     triggers:
       - gerrit-trigger-checkstyle:
 
     publishers:
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+          maven-version: 'mvn36'
       - naginator:
           rerun-unstable-builds: false
           max-failed-builds: 1
 
     project-type: freestyle
     node: '{os}-us'
-    archive-artifacts: >
-      **/build-root/*.rpm
-      **/build-root/*.deb
-      **/dpdk/*.rpm
-      **/dpdk/*.deb
-    allow-empty: 'true'
-    fingerprint: false
-    only-if-success: true
-    default-excludes: false
 
     build-discarder:
       daysToKeep: '{build-days-to-keep}'
 
     publishers:
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
-
-    publishers:
-      - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
-          archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+          maven-version: 'mvn36'
 
 - job-template:
     name: 'vpp-arm-verify-{stream}-{os}'
     project-type: freestyle
     node: '{os}arm-us'
     concurrent: true
-    archive-artifacts: >
-      **/build-root/*.rpm
-      **/build-root/*.deb
-      **/dpdk/*.rpm
-      **/dpdk/*.deb
-    allow-empty: 'true'
-    fingerprint: false
-    only-if-success: true
-    default-excludes: false
+    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
 
     build-discarder:
       daysToKeep: '{build-days-to-keep}'
 
     publishers:
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
-          archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+          maven-version: 'mvn36'
       - naginator:
           rerun-unstable-builds: false
           max-failed-builds: 1
 
     project-type: freestyle
     node: '{os}arm-m'
-    archive-artifacts: >
-      **/build-root/*.rpm
-      **/build-root/*.deb
-      **/dpdk/*.rpm
-      **/dpdk/*.deb
-    allow-empty: 'true'
-    fingerprint: false
-    only-if-success: true
-    default-excludes: false
 
     build-discarder:
       daysToKeep: '{build-days-to-keep}'
 
     publishers:
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+          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}'
                 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
+            - comment-added-contains-event:
+                comment-contains-value: 'runtest'
+            - comment-added-contains-event:
+                comment-contains-value: 'This change is ready for review'
           projects:
             - project-compare-type: 'ANT'
               project-pattern: '{project}'
 
     publishers:
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
-          archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+          maven-version: 'mvn36'
       - naginator:
           rerun-unstable-builds: true
           max-failed-builds: 1
     project-type: freestyle
     node: '{os}-us'
     concurrent: true
-    archive-artifacts: >
-      **/build-root/*.rpm
-      **/build-root/*.deb
-      **/dpdk/*.rpm
-      **/dpdk/*.deb
-    allow-empty: 'true'
-    fingerprint: false
-    only-if-success: true
-    default-excludes: false
+    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
 
     build-discarder:
       daysToKeep: '{build-days-to-keep}'
 
     publishers:
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
-          archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+          maven-version: 'mvn36'
       - naginator:
           rerun-unstable-builds: false
           max-failed-builds: 2
     project-type: freestyle
     node: 'ubuntu1804-us'
     concurrent: true
+    archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
 
     build-discarder:
       daysToKeep: '{build-days-to-keep}'
 
     publishers:
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
-          archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+          maven-version: 'mvn36'
       - naginator:
           rerun-unstable-builds: false
           max-failed-builds: 1
           fixed-delay: 90
 
+- 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:
+          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: include-raw-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'
+
 - job-template:
     name: 'vpp-merge-{stream}-{os}'
 
     project-type: freestyle
     node: '{os}-us'
-    archive-artifacts: >
-      **/build-root/*.rpm
-      **/build-root/*.deb
-      **/dpdk/*.rpm
-      **/dpdk/*.deb
-    allow-empty: 'true'
-    fingerprint: false
-    only-if-success: true
-    default-excludes: false
 
     build-discarder:
       daysToKeep: '{build-days-to-keep}'
 
     publishers:
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+          maven-version: 'mvn36'
       - naginator:
           rerun-unstable-builds: false
           max-failed-builds: 1
           fixed-delay: 90
 
 - job-template:
-    name: 'vpp-csit-verify-device-{stream}-1n-skx'
+    name: 'vpp-csit-verify-device-{stream}-{device-node-arch}'
 
     project-type: freestyle
-    node: 'vpp-csit-device'
+    node: '{executor}'
     concurrent: true
     archive-artifacts: '**/csit_current/**/*.*'
     latest-only: false
           build-timeout: '90'
 
     triggers:
-      - gerrit-trigger-csit-devicetest:
+      - '{trigger}':
           name: '{project}'
           branch: '{branch}'
+          skip-vote: '{skip-vote}'
 
     builders:
       - shell:
       - shell:
           !include-raw-escape: ../scripts/setup_vpp_dpdk_dev_env.sh
       - shell:
-          !include-raw-escape: include-raw-vpp-csit-device.sh
+          !include-raw-escape:
+            - include-raw-vpp-parallel-vars.sh
+            - include-raw-vpp-csit-device.sh
 
     publishers:
       - robot-report:
           output-path: 'csit_current/'
 
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+          maven-version: 'mvn36'
 
 - job-template:
     name: 'vpp-csit-verify-perf-{stream}-{node-arch}'
           output-path: 'csit_current/0/'
 
       - fdio-infra-shiplogs:
-          maven-version: 'mvn33-new'
+          maven-version: 'mvn36'
 
-- project:
-    name: vpp-info
-    project-name: vpp
-    jobs:
-      - gerrit-info-yaml-verify
-    build-node: centos7-builder-4c-4g
-    project: vpp
-    branch: master
+- job-template:
+    name: 'vpp-csit-verify-api-crc-{stream}'
+
+    project-type: freestyle
+    node: '{os}-us'
+    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}'
+
+    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'
+
+    scm:
+      - gerrit-trigger-scm:
+          credentials-id: 'jenkins-gerrit-credentials'
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+
+    wrappers:
+      - fdio-infra-wrappers-non-activity-timeout:
+          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_vpp_ubuntu_docker_test.sh
+      - shell:
+          !include-raw-escape: check_crc.sh
+      # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
+
+    publishers:
+      - fdio-infra-shiplogs:
+          maven-version: 'mvn36'