From: beierlm Date: Thu, 20 Aug 2020 20:49:40 +0000 (-0400) Subject: Promote snaps to beta X-Git-Tag: release-v9.0-start~76 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=6af13d985d477a5a09cfef8362192de757308719;hp=0c82da075268f5891dce618c8bc6e116dfde8493;p=osm%2Fdevops.git Promote snaps to beta Adds logic to check if the snap in the edge channel is newer than the beta channel. If so, promote the edge snap to beta. Change-Id: I27bf9ca01b9ed6cf177addffeedc0fa29aae6bb5 Signed-off-by: beierlm --- diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy index 0428fa1e..8f79cd47 100644 --- a/jenkins/ci-pipelines/ci_stage_3.groovy +++ b/jenkins/ci-pipelines/ci_stage_3.groovy @@ -17,7 +17,7 @@ /* Change log: * 1. Bug 745 : Jayant Madavi, Mrityunjay Yadav : JM00553988@techmahindra.com : 23-july-2019 : Improvement to the code, typically we have 2 * or more branches whose build gets triggered, ex master & release branch, the previous code was removing any/all docker. - * Now removing previous docker of the same branch, so that the other branch failed docker should not be removed. It also + * Now removing previous docker of the same branch, so that the other branch failed docker should not be removed. It also * acts as clean-up for previous docker remove failure. * 2. Feature 7829 : Mrityunjay Yadav, Jayant Madavi: MY00514913@techmahindra.com : 19-Aug-2019 : Added a parameters & function to invoke Robot test. */ @@ -271,14 +271,14 @@ node("${params.NODE}") { { repo_base_url = "-u ${params.REPOSITORY_BASE}" } - if ( params.DO_STAGE_4 ) { - try { + if ( params.DO_STAGE_4 ) { + try { sh "docker stack list |grep \"${container_name_prefix}\"| awk '{ print \$1 }'| xargs docker stack rm" - } - catch (caughtError) { - println("Caught error: docker stack rm failed!") - } - } + } + catch (caughtError) { + println("Caught error: docker stack rm failed!") + } + } sh """ export PATH=$PATH:/snap/bin installers/full_install_osm.sh -y -s ${container_name} --test --nolxd --nodocker --nojuju --nohostports --nohostclient \ @@ -306,9 +306,9 @@ node("${params.NODE}") { if ( ! currentBuild.result.equals('UNSTABLE') ) { stage_archive = keep_artifacts } else { - error = new Exception("Smoke test failed") - currentBuild.result = 'FAILURE' - } + error = new Exception("Smoke test failed") + currentBuild.result = 'FAILURE' + } } } @@ -327,10 +327,10 @@ node("${params.NODE}") { stage_archive = keep_artifacts } else { println ("Systest test failed, throwing error") - error = new Exception("Systest test failed") - currentBuild.result = 'FAILURE' - throw error - } + error = new Exception("Systest test failed") + currentBuild.result = 'FAILURE' + throw error + } } } @@ -348,6 +348,41 @@ node("${params.NODE}") { stage("Docker Push") { sh "make -C docker push INPUT_TAG=${container_name} TAG=${params.DOCKER_TAG}" } + + stage("Snap promotion") { + def snaps = ["osmclient"] + for (snap in snaps) { + channel="" + if (BRANCH_NAME.startsWith("v")) { + channel=BRANCH_NAME.substring(1)+"/" + } else if (BRANCH_NAME!="master") { + channel+="/"+BRANCH_NAME.replaceAll('/','-') + } + track=channel+"edge\\*" + edge_rev=sh(returnStdout: true, + script: "sudo docker run -v ~/.snapcraft:/snapcraft -v ${WORKSPACE}:/build " + + "-w /build snapcore/snapcraft:stable /bin/bash -c " + + "\"snapcraft login --with /snapcraft/config &>/dev/null && " + + "snapcraft revisions $snap\" | " + + "grep \" $track\" | tail -1 | awk '{print \$1}'").trim() + track=channel+"beta\\*" + beta_rev=sh(returnStdout: true, + script: "sudo docker run -v ~/.snapcraft:/snapcraft -v ${WORKSPACE}:/build " + + "-w /build snapcore/snapcraft:stable /bin/bash -c " + + "\"snapcraft login --with /snapcraft/config &>/dev/null && " + + "snapcraft revisions $snap\" | " + + "grep \" $track\" | tail -1 | awk '{print \$1}'").trim() + + if ( edge_rev != beta_rev ) { + print "Promoting $edge_rev to beta in place of $beta_rev" + beta_track=channel+"beta" + sh("sudo docker run -v ~/.snapcraft:/snapcraft -v ${WORKSPACE}:/build " + + "-w /build snapcore/snapcraft:stable /bin/bash -c " + + "\"snapcraft login --with /snapcraft/config &>/dev/null && " + + "snapcraft release $snap $edge_rev $beta_track\"") + } + } + } } } }