From f64349123372e1853f68155a186a19812859e00c Mon Sep 17 00:00:00 2001 From: "halil.cakal" Date: Wed, 1 May 2024 13:49:44 +0100 Subject: [PATCH] Create jenkins pipeline for k6 performance tests - add a new jenkins job - add a timer which run the job at 7:15 every day - the job have the basic minimum functionality for this drop, will be enhanced if required Issue-Id: CPS-2200 Change-Id: I116b9659f96b66e0a4e843b618fffcde274f3b43 Signed-off-by: halil.cakal --- jjb/onap/cps/cps-performance-test-jobs.yaml | 9 ++++ jjb/onap/cps/k6-performance-tests-trigger.sh | 57 ++++++++++++++++++++ jjb/onap/global-templates-onap-java.yaml | 16 ++++++ 3 files changed, 82 insertions(+) create mode 100755 jjb/onap/cps/k6-performance-tests-trigger.sh diff --git a/jjb/onap/cps/cps-performance-test-jobs.yaml b/jjb/onap/cps/cps-performance-test-jobs.yaml index 06d76a707..667674279 100644 --- a/jjb/onap/cps/cps-performance-test-jobs.yaml +++ b/jjb/onap/cps/cps-performance-test-jobs.yaml @@ -43,3 +43,12 @@ jobs: - 'onap-{project-name}-performance-tests-plots' + +- project: + name: cps-k6-tests + project: cps + project-name: cps + timer: "15 7 * * *" + + jobs: + - 'onap-{project-name}-performance-test-k6' diff --git a/jjb/onap/cps/k6-performance-tests-trigger.sh b/jjb/onap/cps/k6-performance-tests-trigger.sh new file mode 100755 index 000000000..6377aa96c --- /dev/null +++ b/jjb/onap/cps/k6-performance-tests-trigger.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# +# Copyright 2024 Nordix Foundation. +# +# 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 -o errexit # Exit on most errors +set -o nounset # Disallow expansion of unset variables +set -o pipefail # Use last non-zero exit code in a pipeline +set -o xtrace # Trace logging - disabled to avoid producing gigabytes of logs + +############################################################################################################################# +################################################ M A I N #################################################################### +############################################################################################################################# +cd "$WORKSPACE" + +# Check if cps repository directory exists +if [ -d "cps" ]; then + # If it exists, wipe the directory + echo "wiping the old cps repository..." + rm -rf cps +fi + +# Check if build-logs exists +if [ -d "build-logs" ]; then + # If it exists, wipe the directory + echo "wiping the old build-logs directory..." + rm -rf "build-logs" +fi + +mkdir "build-logs" + +# Close the cps repository +git clone https://gerrit.nordix.org/onap/cps +cd cps + +# Since the commit which includes k6 test has not been merged yet +git fetch https://gerrit.nordix.org/onap/cps refs/changes/22/21022/10 && git checkout FETCH_HEAD + +working_directory=$(pwd) + +# Provide execute permission to runner script +chmod 777 "$working_directory/k6-tests/run-k6-tests.sh" + +# Run all k6 tests and save the logs +"$working_directory/k6-tests/run-k6-tests.sh" 2>&1 | tee "$WORKSPACE/build-logs/k6-build.log" diff --git a/jjb/onap/global-templates-onap-java.yaml b/jjb/onap/global-templates-onap-java.yaml index 63d1ba923..78e897456 100644 --- a/jjb/onap/global-templates-onap-java.yaml +++ b/jjb/onap/global-templates-onap-java.yaml @@ -145,6 +145,7 @@ - shell: !include-raw-escape: ./verify-policy-csit.sh +# A job to plot the result of cps performance test - job-template: name: 'onap-{project-name}-performance-tests-plots' disabled_job_var: false @@ -164,6 +165,21 @@ dir: "." files: "cpsStableTestsPerformanceReview.html,ncmpStableTestsPerformanceReview.html,cpsUnstableTestsPerformanceReview.html,ncmpUnstableTestsPerformanceReview.html" +# A job to trigger performance test which are based on K6 Framework on cps project +- job-template: + name: 'onap-{project-name}-performance-test-k6' + disabled_job_var: false + node: xerces-cps-hw + wipe_workspace: false + + triggers: + - timed: '{timer}' + + builders: + - shell: + !include-raw-escape: ./cps/k6-performance-tests-trigger.sh + +# A job to perform performance test which are based on Spock-Groovy Framework on cps project - job-template: name: 'onap-{project-name}-{stream}-performance-test-java' disabled_job_var: false -- 2.25.1