X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=jenkins%2Fci-pipelines%2Fci_stage_3.groovy;h=d42c6dd2a3c81acaca733fccfd6b7b3948c9891b;hb=2a344a38ea05e493cfdf33a4d37d92126633823e;hp=d7175b80a68c270ccb9e9ee1a71229a497de2874;hpb=a60ec7310d582158700acf9f3fb1945cb05bacca;p=osm%2Fdevops.git diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy index d7175b80..d42c6dd2 100644 --- a/jenkins/ci-pipelines/ci_stage_3.groovy +++ b/jenkins/ci-pipelines/ci_stage_3.groovy @@ -35,15 +35,13 @@ properties([ 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: 'sanity', description: 'sanity/regression are the 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'), @@ -201,21 +199,25 @@ node("${params.NODE}") { step ([$class: 'CopyArtifact', projectName: "${params.UPSTREAM_JOB_NAME}", - selector: [$class: 'SpecificBuildSelector', buildNumber: "${params.UPSTREAM_JOB_NUMBER}"] + selector: [$class: 'SpecificBuildSelector', + buildNumber: "${params.UPSTREAM_JOB_NUMBER}"] ]) - upstreamComponent = ci_helper.get_mdg_from_project(ci_helper.get_env_value('build.env','GERRIT_PROJECT')) - - // the upstream job name contains suffix with the project. Need this stripped off - def project_without_branch = params.UPSTREAM_JOB_NAME.split('/')[0] - def packages = ci_helper.get_archive(params.ARTIFACTORY_SERVER, - upstreamComponent, - GERRIT_BRANCH, - "${project_without_branch} :: ${GERRIT_BRANCH}", - ci_helper.get_env_value('build.env','BUILD_NUMBER')) - - packageList.addAll(packages) - println("${params.UPSTREAM_JOB_NAME}: ${packages}") + upstreamComponent = ci_helper.get_mdg_from_project( + ci_helper.get_env_value('build.env','GERRIT_PROJECT')) + def buildNumber = ci_helper.get_env_value('build.env','BUILD_NUMBER') + dir("$upstreamComponent") { + // the upstream job name contains suffix with the project. Need this stripped off + def project_without_branch = params.UPSTREAM_JOB_NAME.split('/')[0] + def packages = ci_helper.get_archive(params.ARTIFACTORY_SERVER, + upstreamComponent, + GERRIT_BRANCH, + "${project_without_branch} :: ${GERRIT_BRANCH}", + buildNumber) + + packageList.addAll(packages) + println("Fetched pre-merge ${params.UPSTREAM_JOB_NAME}: ${packages}") + } } parallelSteps = [:] @@ -247,15 +249,14 @@ node("${params.NODE}") { parallel parallelSteps /////////////////////////////////////////////////////////////////////////////////////// -// Create APT repository +// Create Devops APT repository /////////////////////////////////////////////////////////////////////////////////////// - for ( component in [ "devops" ] ) { - sh "mv ${component}/pool/${component} pool" - sh "dpkg-sig --sign builder -k ${GPG_KEY_NAME} pool/${component}/*" - sh "mkdir -p dists/${params.REPO_DISTRO}/${component}/binary-amd64/" - sh "apt-ftparchive packages pool/${component} > dists/${params.REPO_DISTRO}/${component}/binary-amd64/Packages" - sh "gzip -9fk dists/${params.REPO_DISTRO}/${component}/binary-amd64/Packages" - } + sh "mv devops/pool/ pool" + sh "dpkg-sig --sign builder -k ${GPG_KEY_NAME} pool/devops/*" + sh "mkdir -p dists/${params.REPO_DISTRO}/devops/binary-amd64/" + sh "apt-ftparchive packages pool/devops > dists/${params.REPO_DISTRO}/devops/binary-amd64/Packages" + sh "gzip -9fk dists/${params.REPO_DISTRO}/devops/binary-amd64/Packages" + // create and sign the release file sh "apt-ftparchive release dists/${params.REPO_DISTRO} > dists/${params.REPO_DISTRO}/Release" sh "gpg --yes -abs -u ${GPG_KEY_NAME} -o dists/${params.REPO_DISTRO}/Release.gpg dists/${params.REPO_DISTRO}/Release" @@ -472,56 +473,53 @@ node("${params.NODE}") { 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") { @@ -537,7 +535,7 @@ EOF""" } } } - } // if ( params.DO_STAGE_4 ) + } // if ( params.DO_ROBOT ) if ( params.SAVE_ARTIFACTS_OVERRIDE || stage_archive ) { stage("Archive") { @@ -554,11 +552,13 @@ EOF""" for (buildStep in containerList) { def module = buildStep def moduleName = buildStep.toLowerCase() - def moduleTag = params.DOCKER_TAG + def dockerTag = params.DOCKER_TAG + def moduleTag = container_name + parallelSteps[module] = { dir("$module") { - sh "docker tag opensourcemano/${moduleName}:${moduleTag} opensourcemano/${moduleName}:${moduleTag}" - sh "docker push opensourcemano/${moduleName}:${moduleTag}" + sh "docker tag opensourcemano/${moduleName}:${moduleTag} opensourcemano/${moduleName}:${dockerTag}" + sh "docker push opensourcemano/${moduleName}:${dockerTag}" } } }