Create jenkins pipeline for k6 performance tests 33/21033/7
authorhalil.cakal <halil.cakal@est.tech>
Wed, 1 May 2024 12:49:44 +0000 (13:49 +0100)
committerhalil.cakal <halil.cakal@est.tech>
Mon, 13 May 2024 13:55:35 +0000 (14:55 +0100)
- 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 <halil.cakal@est.tech>
jjb/onap/cps/cps-performance-test-jobs.yaml
jjb/onap/cps/k6-performance-tests-trigger.sh [new file with mode: 0755]
jjb/onap/global-templates-onap-java.yaml

index 06d76a707ff9f719de164b8b0b1f7c065efc57e8..6676742794896d7edc3947d8bb2d1e198bd04059 100644 (file)
 
     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 (executable)
index 0000000..6377aa9
--- /dev/null
@@ -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"
index 63d1ba923f0dff5a751e7987629c69e878f686ca..78e89745639b3013e4d0e2d1ce922dbad82b29b2 100644 (file)
       - 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
           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