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 <halil.cakal@est.tech>
diff --git a/jjb/onap/cps/cps-performance-test-jobs.yaml b/jjb/onap/cps/cps-performance-test-jobs.yaml
index 06d76a7..6676742 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 0000000..6377aa9
--- /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 63d1ba9..78e8974 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