summaryrefslogtreecommitdiffstats
path: root/jjb
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2023-12-13 18:11:20 +0100
committerVratko Polak <vrpolak@cisco.com>2023-12-13 18:11:20 +0100
commit75fdf175f9ac2af2b13853df22451ff9f0d0606b (patch)
treedde3f9610ce242cc2ea58edf2651968129996f4a /jjb
parent0b979245d24de1bc5a936f21715131b083f80b5e (diff)
feat(vpp): add a new job for bisecting
Change-Id: I8856e5cde4b85edd01a2c10af88823890c3afcb1 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'jjb')
-rw-r--r--jjb/scripts/vpp/copy_archives.sh10
-rw-r--r--jjb/scripts/vpp/csit-bisect.sh38
-rw-r--r--jjb/vpp/vpp.yaml99
3 files changed, 142 insertions, 5 deletions
diff --git a/jjb/scripts/vpp/copy_archives.sh b/jjb/scripts/vpp/copy_archives.sh
index d69ca7e4..dafcd4ae 100644
--- a/jjb/scripts/vpp/copy_archives.sh
+++ b/jjb/scripts/vpp/copy_archives.sh
@@ -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
index 00000000..0a264dbc
--- /dev/null
+++ b/jjb/scripts/vpp/csit-bisect.sh
@@ -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"
diff --git a/jjb/vpp/vpp.yaml b/jjb/vpp/vpp.yaml
index 03e3cbb3..fde05420 100644
--- a/jjb/vpp/vpp.yaml
+++ b/jjb/vpp/vpp.yaml
@@ -256,6 +256,7 @@
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:
@@ -1021,6 +1022,104 @@
- 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}'