X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=jenkins%2Fci-pipelines%2Fci_stage_3.groovy;h=733539f99cf220b359eec9a21550cea4ab63b589;hb=8560c690e667a738adcbc7a53c9c123871f73a8e;hp=082f7283a5a3b70724b04a4780ab7039d24fe488;hpb=49461294d0896c910a93aa18e20ba10f6bef38b3;p=osm%2Fdevops.git diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy index 082f7283..733539f9 100644 --- a/jenkins/ci-pipelines/ci_stage_3.groovy +++ b/jenkins/ci-pipelines/ci_stage_3.groovy @@ -30,8 +30,11 @@ properties([ string(defaultValue: '', description: '', name: 'UPSTREAM_JOB_NUMBER'), string(defaultValue: 'dpkg1', description: '', name: 'GPG_KEY_NAME'), string(defaultValue: 'artifactory-osm', description: '', name: 'ARTIFACTORY_SERVER'), + string(defaultValue: 'osm-stage_4', description: '', name: 'DOWNSTREAM_STAGE_NAME'), booleanParam(defaultValue: false, description: '', name: 'SAVE_CONTAINER_ON_FAIL'), - booleanParam(defaultValue: false, description: '', name: 'SAVE_CONTAINER_ON_PASS') + booleanParam(defaultValue: false, description: '', name: 'SAVE_CONTAINER_ON_PASS'), + booleanParam(defaultValue: false, description: '', name: 'DO_STAGE_4'), + booleanParam(defaultValue: false, description: '', name: 'SAVE_ARTIFACTS_OVERRIDE'), ]) ]) @@ -48,15 +51,12 @@ node("${params.NODE}") { ci_helper = load "jenkins/ci-pipelines/ci_helper.groovy" def upstream_main_job = params.UPSTREAM_SUFFIX - def save_artifacts = false // upstream jobs always use merged artifacts upstream_main_job += '-merge' container_name_prefix = "osm-${tag_or_branch}" container_name = "${container_name_prefix}" if ( JOB_NAME.contains('merge') ) { - save_artifacts = true - println("merge job, saving artifacts") container_name += "-merge" } container_name += "-${BUILD_NUMBER}" @@ -69,7 +69,7 @@ node("${params.NODE}") { // grab all stable upstream builds based on the dir("${RELEASE}") { - def list = ["SO", "UI", "RO", "openvim", "osmclient", "IM"] + def list = ["SO", "UI", "RO", "openvim", "osmclient", "IM", "devops", "MON", "N2VC", "NBI" ] for (component in list) { step ([$class: 'CopyArtifact', projectName: "${component}${upstream_main_job}/${GERRIT_BRANCH}"]) @@ -127,6 +127,12 @@ node("${params.NODE}") { // copy the public key into the release folder // this pulls the key from the home dir of the current user (jenkins) sh "cp ~/${REPO_KEY_NAME} ." + + // merge the change logs + sh """ + rm -f changelog/changelog-osm.html + [ ! -d changelog ] || for mdgchange in \$(ls changelog); do cat changelog/\$mdgchange >> changelog/changelog-osm.html; done + """ } // start an apache server to serve up the images http_server_name = "${container_name}-apache" @@ -181,13 +187,29 @@ node("${params.NODE}") { """ } - stage("Test") { + stage("Smoke") { ci_helper.systest_run(container_name, 'smoke') junit '*.xml' } - // save the artifacts of this build if this is a merge job - if ( save_artifacts ) { + stage_4_archive = false + if ( params.DO_STAGE_4 ) { + stage("stage_4") { + def downstream_params = [ + string(name: 'CONTAINER_NAME', value: container_name), + string(name: 'NODE', value: NODE_NAME.split()[0]), + ] + stage_4_result = build job: "${params.DOWNSTREAM_STAGE_NAME}/${GERRIT_BRANCH}", parameters: downstream_params, propagate: false + currentBuild.result = stage_4_result.result + + if ( stage_4_result.getResult().equals('SUCCESS') ) { + stage_4_archive = true; + } + } + } + + // override to save the artifacts + if ( params.SAVE_ARTIFACTS_OVERRIDE || stage_4_archive ) { stage("Archive") { sh "echo ${container_name} > build_version.txt" archiveArtifacts artifacts: "build_version.txt", fingerprint: true @@ -200,6 +222,7 @@ node("${params.NODE}") { } } catch(caughtError) { + println("Caught error!") error = caughtError currentBuild.result = 'FAILURE' }