feat(vpp): add a new job for bisecting 15/23815/62
authorVratko Polak <vrpolak@cisco.com>
Wed, 13 Dec 2023 17:11:20 +0000 (18:11 +0100)
committerVratko Polak <vrpolak@cisco.com>
Wed, 13 Dec 2023 17:11:20 +0000 (18:11 +0100)
Change-Id: I8856e5cde4b85edd01a2c10af88823890c3afcb1
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
jjb/scripts/vpp/copy_archives.sh
jjb/scripts/vpp/csit-bisect.sh [new file with mode: 0644]
jjb/vpp/vpp.yaml

index d69ca7e..dafcd4a 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -30,9 +30,9 @@ set +e
 # Variables read:
 # - WORKSPACE - Jenkins workspace to create csit subdirectory in.
 # Directories updated:
-# - ${WORKSPACE}/archives/csit_current - Current patch results are copied here.
-# - ${WORKSPACE}/archives/csit_parent - Parent patch results are copied here.
+# - ${WORKSPACE}/archives/csit_* - Test results for various VPP builds are here.
+#   e.g. csit_current and csit_parent for vpp per-patch perf job.
 
 mkdir -p "${WORKSPACE}/archives"
-cp -Rv "${WORKSPACE}/csit_current" "${WORKSPACE}/archives"
-cp -Rv "${WORKSPACE}/csit_parent" "${WORKSPACE}/archives"
+# Using asterisk as bisect job creates variable number of directories.
+cp -Rv "${WORKSPACE}/csit_"* "${WORKSPACE}/archives"
diff --git a/jjb/scripts/vpp/csit-bisect.sh b/jjb/scripts/vpp/csit-bisect.sh
new file mode 100644 (file)
index 0000000..0a264db
--- /dev/null
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# 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.
+
+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" "bisect.sh"
index 03e3cbb..fde0542 100644 (file)
     name: vpp-csit-verify-perf
     jobs:
       - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
+      - 'vpp-csit-bisect-{stream}-{os}-{executor-arch}-{testbed-arch}'
     project: 'vpp'
     skip-vote: 'false'
     stream:
       - fdio-infra-publish
 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
 
+# VPP-CSIT-BISECT JOB TEMPLATE
+- job-template:
+    name: 'vpp-csit-bisect-{stream}-{os}-{executor-arch}-{testbed-arch}'
+    description: |
+      <ul>
+          <li>executor
+              <ul>
+                  <li>builder-{os}-prod-{executor-arch}
+              </ul>
+          <li>testbed architecture
+              <ul>
+                  <li>{testbed-arch}
+              </ul>
+          <li>Objective
+              <ul>
+                  <li>Find a cause of VPP performance jump among VPP commits.
+              </ul>
+      </ul>
+
+    project-type: freestyle
+    node: 'builder-{os}-prod-{executor-arch}'
+    concurrent: true
+    latest-only: false
+
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
+
+    # Please keep parameters in alphabetical order
+    parameters:
+      - csit-perf-trial-duration-parameter:
+          csit-perf-trial-duration: "1.0"
+      - csit-perf-trial-multiplicity-parameter:
+          csit-perf-trial-multiplicity: "60"
+      - 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:
+          credentials-id: 'jenkins-gerrit-credentials'
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+
+    wrappers:
+      - fdio-infra-wrappers-non-activity-timeout:
+          build-timeout: 300
+
+    triggers:
+      - gerrit-trigger-csit-perftest:
+          project: '{project}'
+          branch: '{branch}'
+          trigger-word: 'bisecttest-{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_ext_deps.sh
+      - shell:
+          !include-raw-escape:
+          - ../scripts/vpp/csit-bisect.sh
+
+    publishers:
+      - 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-BISECT JOB TEMPLATE
+
 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
 - job-template:
     name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'