X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=jenkins%2Fci-pipelines%2Fci_stage_3.groovy;h=620faba17fa9d52c2d8f21cece9913eb8aed9385;hb=refs%2Fchanges%2F70%2F12770%2F1;hp=ec11671906275b1a9a6ba88e3b207c415d231afd;hpb=0cdfb57951187cc077418f6d76976469ff72b691;p=osm%2Fdevops.git diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy index ec116719..620faba1 100644 --- a/jenkins/ci-pipelines/ci_stage_3.groovy +++ b/jenkins/ci-pipelines/ci_stage_3.groovy @@ -704,12 +704,26 @@ EOF""" withCredentials([string(credentialsId: 'Charmstore', variable: 'CHARMCRAFT_AUTH')]) { sh "charmcraft status $charm --format json > ${charm}.json" isCharm = sh(returnStdout: true, script: "grep architecture ${charm}.json | wc -l").trim() as int + resourceArgument = "" if (isCharm) { - jqScriptEdge = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[] | select(.base.architecture==\"amd64\" and .base.channel==\"20.04\") | .releases[] | select(.channel==\"latest/edge/merged\")| .version'|head -1" - jqScriptBeta = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[] | select(.base.architecture==\"amd64\" and .base.channel==\"20.04\") | .releases[] | select(.channel==\"latest/beta\")| .version'|head -1" + jqScriptEdge = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[] | select(.base.architecture==\"amd64\" and .base.channel==\"20.04\") | .releases[] | select(.channel==\"$channel/edge/merged\")| .version'|head -1" + jqScriptBeta = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[] | select(.base.architecture==\"amd64\" and .base.channel==\"20.04\") | .releases[] | select(.channel==\"$channel/beta\")| .version'|head -1" + index=0 + while (index < 5) { + resourceNameScript = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[] | select(.base.architecture==\"amd64\" and .base.channel==\"20.04\") | .releases[] | select(.channel==\"$channel/edge/merged\")| .resources[$index].name'|head -1" + resourceRevsScript = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[] | select(.base.architecture==\"amd64\" and .base.channel==\"20.04\") | .releases[] | select(.channel==\"$channel/edge/merged\")| .resources[$index].revision'|head -1" + resourceName = sh(returnStdout: true, script: resourceNameScript).trim() + resourceRevs = sh(returnStdout: true, script: resourceRevsScript).trim() + if (resourceName != "null") { + resourceArgument += " --resource ${resourceName}:${resourceRevs}" + } else { + break + } + index ++ + } } else { - jqScriptEdge = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[].releases[] | select(.channel==\"latest/edge/merged\")| .version'|head -1" - jqScriptBeta = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[].releases[] | select(.channel==\"latest/beta\")| .version'|head -1" + jqScriptEdge = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[].releases[] | select(.channel==\"$channel/edge/merged\")| .version'|head -1" + jqScriptBeta = "cat ${charm}.json | jq -r '.[] | select(.track==\"$channel\") | .mappings[].releases[] | select(.channel==\"$channel/beta\")| .version'|head -1" } // edge/merged is used in place of /edge as 10.1.0 LTS uses latest/edge edge_rev = sh(returnStdout: true, script: jqScriptEdge).trim() @@ -717,12 +731,12 @@ EOF""" try { edge_rev = edge_rev as int } catch (NumberFormatException nfe) {edge_rev = 0} try { beta_rev = beta_rev as int } catch (NumberFormatException nfe) {beta_rev = 0} - print "Edge: $edge_rev, Beta: $beta_rev" + print "Edge: $edge_rev, Beta: $beta_rev $resourceArgument" if (edge_rev > beta_rev) { print "Promoting $edge_rev to beta in place of $beta_rev" beta_track = channel + 'beta' - sh "charmcraft release ${charm} --revision=${edge_rev} --channel=${channel}/beta" + sh "charmcraft release ${charm} --revision=${edge_rev} ${resourceArgument} --channel=${channel}/beta" } }