#!/bin/groovy /* * SPDX-License-Identifier: LicenseRef-CSSL-1.0 */ def node = "${params.JenkinsNode}" def resource = "${params.JenkinsResource}" pipeline { agent { label node } options { timestamps() ansiColor('xterm') timeout(time: 3, unit: 'HOURS') } stages { stage ("Trigger NEU CI") { steps { lock (resource) { script { withCredentials([ [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ColosseumCredentials}", usernameVariable: 'col_username', passwordVariable: 'col_password'], ]) { // use eNB target branch variable if eNB repository is empty def git_Branch = "" if (params.eNB_Branch.isEmpty()) { echo 'eNB_Branch parameter is empty, using eNB_TargetBranch instead' git_Branch = params.eNB_TargetBranch } else { git_Branch = params.eNB_Branch } // use default 10011 rf scenario if not specified if (params.Colosseum_Rf_Scenario.isEmpty()) { echo 'Colosseum_Rf_Scenario parameter is empty, defaulting to 10011' rf_scenario = "10011" } else { rf_scenario = params.Colosseum_Rf_Scenario } sh "echo Testing reachability of Colosseum endpoint" sh "ping -c 3 10.100.1.253" sh "./ci-scripts/colosseum_scripts/launch-job.sh ${col_username} ${col_password} ${currentBuild.number} ${params.eNB_Repository} ${git_Branch} ${rf_scenario} ${env.JOB_URL}" } } } } } stage ("Wait for job to finish") { steps { lock (resource) { script { withCredentials([ [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ColosseumCredentials}", usernameVariable: 'col_username', passwordVariable: 'col_password'], ]) { timeout (time: 2, unit: 'HOURS') { sh "./ci-scripts/colosseum_scripts/wait-job-end.sh ${col_username} ${col_password}" } } } } } } stage ("Get test results") { steps { lock (resource) { script { withCredentials([ [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ColosseumCredentials}", usernameVariable: 'col_username', passwordVariable: 'col_password'], ]) { sh "./ci-scripts/colosseum_scripts/get-test-results.sh ${col_username} ${col_password}" } if(fileExists("results.tar.xz")) { archiveArtifacts "results.tar.xz" sh "mkdir -p results" sh "tar -xf results.tar.xz -C results --strip-components=1" if(fileExists("results/test_summary.html")) { archiveArtifacts "results/test_summary.html" } // check if test passed sh "./ci-scripts/colosseum_scripts/check-results.sh results/test_summary.html" sh "rm -Rf ./results" } } } } } stage ("Set job status") { steps { lock (resource) { script { echo 'Set job status' sh "./ci-scripts/colosseum_scripts/set-job-status.sh" } } } } } }