[VOL-3780] generalizing the periodic pipeline to support multiple testing scenarios
Change-Id: I18040a25155b347907161184fbeb247f38324924
diff --git a/jjb/pipeline/voltha/master/openonu-go-periodic-test-bbsim.groovy b/jjb/pipeline/voltha/master/periodic-bbsim-tests.groovy
similarity index 76%
rename from jjb/pipeline/voltha/master/openonu-go-periodic-test-bbsim.groovy
rename to jjb/pipeline/voltha/master/periodic-bbsim-tests.groovy
index eeca95a..57a6e0e 100644
--- a/jjb/pipeline/voltha/master/openonu-go-periodic-test-bbsim.groovy
+++ b/jjb/pipeline/voltha/master/periodic-bbsim-tests.groovy
@@ -23,7 +23,7 @@
def clusterName = "kind-ci"
-def execute_test(testName, workflow, testTarget, outputDir, testSpecificHelmFlags = "") {
+def execute_test(testTarget, workflow, testSpecificHelmFlags = "") {
def infraNamespace = "default"
def volthaNamespace = "voltha"
def robotLogsDir = "RobotLogs"
@@ -67,8 +67,8 @@
}
// start logging
sh """
- mkdir -p ${outputDir}
- _TAG=kail-${workflow} kail -n infra -n voltha > ${outputDir}/onos-voltha-combined.log &
+ mkdir -p $WORKSPACE/${testTarget}
+ _TAG=kail-${workflow} kail -n infra -n voltha > $WORKSPACE/${testTarget}/onos-voltha-combined.log &
"""
sh """
JENKINS_NODE_COOKIE="dontKillMe" bash -c "while true; do kubectl port-forward --address 0.0.0.0 -n ${volthaNamespace} svc/voltha-voltha-api 55555:55555; done"&
@@ -76,13 +76,13 @@
JENKINS_NODE_COOKIE="dontKillMe" bash -c "while true; do kubectl port-forward --address 0.0.0.0 -n ${infraNamespace} svc/voltha-infra-kafka 9092:9092; done"&
ps aux | grep port-forward
"""
- getPodsInfo("${outputDir}")
+ getPodsInfo("$WORKSPACE/${testTarget}")
}
}
stage('Run test ' + testTarget + ' on ' + workflow + ' workFlow') {
sh """
- mkdir -p $WORKSPACE/${robotLogsDir}/${testName}
- export ROBOT_MISC_ARGS="-d $WORKSPACE/${robotLogsDir}/${testName} "
+ mkdir -p $WORKSPACE/${robotLogsDir}/${testTarget}
+ export ROBOT_MISC_ARGS="-d $WORKSPACE/${robotLogsDir}/${testTarget} "
ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120"
export KVSTOREPREFIX=voltha/voltha_voltha
@@ -164,57 +164,21 @@
}
}
}
+ stage('Parse and execute tests') {
+ steps {
+ script {
+ def tests = readYaml text: testTargets
- stage('Run E2E Tests 1t1gem') {
- steps {
- execute_test("1t1gem", "att", makeTarget, "$WORKSPACE/1t1gem")
- }
- }
-
- stage('Run E2E Tests 1t4gem') {
- steps {
- execute_test("1t4gem", "att", make1t4gemTestTarget, "$WORKSPACE/1t4gem")
- }
- }
-
- stage('Run E2E Tests 1t8gem') {
- steps {
- execute_test("1t8gem", "att", make1t8gemTestTarget, "$WORKSPACE/1t8gem")
- }
- }
-
- stage('Run MIB Upload Tests') {
- when { beforeAgent true; expression { return "${olts}" == "1" } }
- steps {
- script {
- def mibUploadHelmFlags = "--set pon=2,onu=2,controlledActivation=only-onu "
- execute_test("mibupload", "att", "mib-upload-templating-openonu-go-adapter-test", "$WORKSPACE/mibupload", mibUploadHelmFlags)
+ for(int i = 0;i<tests.size();i++) {
+ def test = tests[i]
+ def target = test["target"]
+ def workflow = test["workflow"]
+ def flags = test["flags"]
+ println "Executing test ${target} on workflow ${workflow} with extra flags ${flags}"
+ execute_test(target, workflow, flags)
+ }
+ }
}
- }
- }
-
- stage('Reconcile DT workflow') {
- steps {
- script {
- execute_test("ReconcileDT", "dt", makeReconcileDtTestTarget, "$WORKSPACE/ReconcileDT")
- }
- }
- }
-
- stage('Reconcile ATT workflow') {
- steps {
- script {
- execute_test("ReconcileATT", "att", makeReconcileTestTarget, "$WORKSPACE/ReconcileATT")
- }
- }
- }
-
- stage('Reconcile TT workflow') {
- steps {
- script {
- execute_test("ReconcileTT", "tt", makeReconcileTtTestTarget, "$WORKSPACE/ReconcileTT")
- }
- }
}
}
post {