Add a standalone job for checking VPP API CRCs 08/20708/5
authorVratko Polak <vrpolak@cisco.com>
Mon, 29 Jul 2019 14:38:17 +0000 (16:38 +0200)
committerVratko Polak <vrpolak@cisco.com>
Wed, 31 Jul 2019 08:02:20 +0000 (08:02 +0000)
+ Only for master (and stable1908 and later).
+ Move the INFO.yaml verifying job project before templates.

Change-Id: I68e504b1c4c7148c6c98543f606bf0b621823564
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
jjb/vpp/check_crc.sh [new file with mode: 0644]
jjb/vpp/vpp.yaml

diff --git a/jjb/vpp/check_crc.sh b/jjb/vpp/check_crc.sh
new file mode 100644 (file)
index 0000000..71d960a
--- /dev/null
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2019 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.
+
+set -exuo pipefail
+
+# Clone CSIT git repository and proceed with entry script located there.
+#
+# Variables read:
+# - WORKSPACE - Jenkins workspace to create csit subdirectory in.
+# - CSIT_REF - Override ref of CSIT git repository to checkout.
+# Directories updated:
+# - ${WORKSPACE}/csit - Created, holding a checked out CSIT repository.
+# - Multiple other side effects by entry script(s), see CSIT repository.
+
+cd "${WORKSPACE}"
+git clone https://gerrit.fd.io/r/csit --depth=1 --no-single-branch --no-checkout
+pushd "${WORKSPACE}/csit"
+if [[ -n "${CSIT_REF-}" ]]; then
+    git fetch --depth=1 https://gerrit.fd.io/r/csit "${CSIT_REF}"
+    git checkout FETCH_HEAD
+else
+    git checkout HEAD
+fi
+popd
+csit_entry_dir="${WORKSPACE}/csit/resources/libraries/bash/entry"
+source "${csit_entry_dir}/with_oper_for_vpp.sh" "check_crc.sh"
index eebe0a3..53c9828 100644 (file)
       - 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:
       - fdio-infra-shiplogs:
           maven-version: 'mvn33-new'
 
-- 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.
+
+    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: 'mvn33-new'