Update stage1 and stage3 to run robot tests with tag
This commit updates stage1 and stage3 to allow running robot
tests in stage3 by default for every commit.
The commit removes param DO_STAGE_4 since it is confusing. Only
params DO_ROBOT and ROBOT_TAG will be used. If DO_ROBOT is set
to true, robot tests will be run in stage3 for all tests containing
the tag indicated by ROBOT_TAG. The param ROBOT_TAG replaces
the previous param TEST_NAME.
MDG stage1 can specify params DO_ROBOT and ROBOT_TAG. If specified,
they will be used. Otherwise, the default for stage3 will apply
(DO_ROBOT=true, ROBOT_TAG=sanity).
Daily job, which will run stage1, can also specify params DO_ROBOT
and ROBOT_TAG. In principle, they will be set as follows:
DO_ROBOT=true, ROBOT_TAG=daily.
Stage1 job, in case of failure, will send an e-mail to OSM_MDL
mailing list reporting the failure. The mail will only be sent
if the name of the job starts with "daily-stage_4".
Change-Id: If481f2da01f4c811495504329fe7b6d7bd88c9de
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/jenkins/ci-pipelines/ci_stage_1.groovy b/jenkins/ci-pipelines/ci_stage_1.groovy
index 0f530c5..261e12f 100644
--- a/jenkins/ci-pipelines/ci_stage_1.groovy
+++ b/jenkins/ci-pipelines/ci_stage_1.groovy
@@ -59,12 +59,6 @@
println("No gerrit event found")
}
- do_stage_4 = false
- if (params.DO_STAGE_4)
- {
- do_stage_4 = params.DO_STAGE_4
- }
-
// pipeline running from gerrit trigger.
// kickoff the downstream multibranch pipeline
def downstream_params = [
@@ -75,10 +69,16 @@
string(name: 'PROJECT_URL_PREFIX', value: params.PROJECT_URL_PREFIX),
string(name: 'DOCKER_TAG', value: params.DOCKER_TAG),
booleanParam(name: 'TEST_INSTALL', value: params.TEST_INSTALL),
- booleanParam(name: 'DO_ROBOT', value: params.DO_ROBOT),
- booleanParam(name: 'DO_STAGE_4', value: do_stage_4),
]
-
+ if ( params.DO_ROBOT )
+ {
+ downstream_params.add(booleanParam(name: 'DO_ROBOT', value: params.DO_ROBOT))
+ }
+ if ( params.ROBOT_TAG )
+ {
+ downstream_params.add(booleanParam(name: 'ROBOT_TAG', value: params.ROBOT_TAG))
+ }
+
if ( params.STAGE )
{
// go directly to stage 3 (osm system)
@@ -101,8 +101,8 @@
project = stage_3_merge_result.getProjectName()
build = stage_3_merge_result.getNumber()
// Jayant if the build fails the below error will cause the pipeline to terminate.
- // error("${project} build ${build} failed")
- currentBuild.result = stage_3_merge_result.getResult()
+ // error("${project} build ${build} failed")
+ currentBuild.result = stage_3_merge_result.getResult()
}
}
catch(caughtError) {
@@ -111,7 +111,7 @@
}
finally {
try {
- if((currentBuild.result != 'SUCCESS') && (env.JOB_NAME == 'daily-stage_4')){
+ if ((currentBuild.result != 'SUCCESS') && (env.JOB_NAME.startsWith('daily-stage_4'))){
emailext (
subject: "[OSM-Jenkins] Job: ${env.JOB_NAME} Build: ${env.BUILD_NUMBER} Result: ${currentBuild.result}",
body: """ Check console output at "${env.BUILD_URL}" """,
diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy
index f5fa75d..d42c6dd 100644
--- a/jenkins/ci-pipelines/ci_stage_3.groovy
+++ b/jenkins/ci-pipelines/ci_stage_3.groovy
@@ -35,15 +35,13 @@
booleanParam(defaultValue: false, description: '', name: 'SAVE_CONTAINER_ON_FAIL'),
booleanParam(defaultValue: false, description: '', name: 'SAVE_CONTAINER_ON_PASS'),
booleanParam(defaultValue: true, description: '', name: 'SAVE_ARTIFACTS_ON_SMOKE_SUCCESS'),
- booleanParam(defaultValue: true, description: '', name: 'DO_STAGE_4'),
booleanParam(defaultValue: true, description: '', name: 'DO_BUILD'),
booleanParam(defaultValue: true, description: '', name: 'DO_INSTALL'),
- booleanParam(defaultValue: true, description: '', name: 'DO_SMOKE'),
booleanParam(defaultValue: true, description: '', name: 'DO_DOCKERPUSH'),
booleanParam(defaultValue: false, description: '', name: 'SAVE_ARTIFACTS_OVERRIDE'),
string(defaultValue: '/home/jenkins/hive/openstack-etsi.rc', description: '', name: 'HIVE_VIM_1'),
- booleanParam(defaultValue: false, description: '', name: 'DO_ROBOT'),
- string(defaultValue: 'daily', description: 'sanity/regression/daily are the common options', name: 'TEST_NAME'),
+ booleanParam(defaultValue: true, description: '', name: 'DO_ROBOT'),
+ string(defaultValue: 'sanity', description: 'sanity/regression/daily are the common options', name: 'ROBOT_TAG'),
string(defaultValue: '/home/jenkins/hive/robot-systest.cfg', description: '', name: 'ROBOT_VIM'),
string(defaultValue: '/home/jenkins/hive/kubeconfig.yaml', description: '', name: 'KUBECONFIG'),
string(defaultValue: '/home/jenkins/hive/clouds.yaml', description: '', name: 'CLOUDS'),
@@ -475,56 +473,53 @@
osmHostname = IP_ADDRESS
}
} // stage("Install")
- } // if ( params.DO_INSTALL )
-
///////////////////////////////////////////////////////////////////////////////////////
// Health check of installed OSM in remote vm
///////////////////////////////////////////////////////////////////////////////////////
- if ( params.DO_SMOKE ) {
stage("OSM Health") {
stackName = "osm"
sshCommand remote: remote, command: """
/usr/share/osm-devops/installers/osm_health.sh -k -s ${stackName}
"""
- }
+ } // stage("OSM Health")
}
+ } // if ( params.DO_INSTALL )
+
///////////////////////////////////////////////////////////////////////////////////////
// Execute Robot tests
///////////////////////////////////////////////////////////////////////////////////////
stage_archive = false
- if ( params.DO_STAGE_4 ) {
+ if ( params.DO_ROBOT ) {
try {
stage("System Integration Test") {
- if ( params.DO_ROBOT ) {
- if( useCharmedInstaller ) {
- tempdir = sh(returnStdout: true, script: "mktemp -d").trim()
- sh(script: "touch ${tempdir}/hosts")
- hostfile="${tempdir}/hosts"
- sh """cat << EOF > ${hostfile}
+ if ( useCharmedInstaller ) {
+ tempdir = sh(returnStdout: true, script: "mktemp -d").trim()
+ sh(script: "touch ${tempdir}/hosts")
+ hostfile="${tempdir}/hosts"
+ sh """cat << EOF > ${hostfile}
127.0.0.1 localhost
${remote.host} prometheus.${remote.host}.xip.io nbi.${remote.host}.xip.io
EOF"""
- } else {
- hostfile=null
- }
-
- jujuPassword=sshCommand remote: remote, command: """
- echo `juju gui 2>&1 | grep password | cut -d: -f2`
- """
-
- run_robot_systest(
- container_name,
- params.TEST_NAME,
- osmHostname,
- prometheusHostname,
- prometheusPort,
- params.ROBOT_VIM,
- params.KUBECONFIG,
- params.CLOUDS,
- hostfile,
- jujuPassword)
+ } else {
+ hostfile=null
}
+
+ jujuPassword=sshCommand remote: remote, command: """
+ echo `juju gui 2>&1 | grep password | cut -d: -f2`
+ """
+
+ run_robot_systest(
+ container_name,
+ params.ROBOT_TAG,
+ osmHostname,
+ prometheusHostname,
+ prometheusPort,
+ params.ROBOT_VIM,
+ params.KUBECONFIG,
+ params.CLOUDS,
+ hostfile,
+ jujuPassword)
} // stage("System Integration Test")
} finally {
stage("Archive Container Logs") {
@@ -540,7 +535,7 @@
}
}
}
- } // if ( params.DO_STAGE_4 )
+ } // if ( params.DO_ROBOT )
if ( params.SAVE_ARTIFACTS_OVERRIDE || stage_archive ) {
stage("Archive") {