'installers/charm/osm-ng-ui',
'installers/charm/osm-pol',
'installers/charm/osm-ro',
+ 'installers/charm/osm-update-db-operator',
'installers/charm/prometheus',
'installers/charm/vca-integrator-operator',
]
for (charmPath in charms) {
def directory = charmPath
if (fileExists("$charmPath/charmcraft.yaml")) {
- CHECK_CHANGES = "git diff --name-only origin/$GERRIT_BRANCH -- $directory |wc -l"
+ if (isMergeJob) {
+ CHECK_CHANGES = "git diff --name-only HEAD^1 -- $directory |wc -l"
+ } else {
+ CHECK_CHANGES = "git diff --name-only origin/$GERRIT_BRANCH -- $directory |wc -l"
+ }
charmsChanged = sh(returnStdout:true, script: CHECK_CHANGES).trim()
- if (charmsChanged != "0" || isMergeJob) {
+
+ if (charmsChanged != "0") {
println("$directory has changes, rebuilding")
parallelSteps[directory] = {
throw e
}
- def resourceName = sh(
+ def charmFilename = sh(
returnStdout: true,
script: 'cat pack.json | jq -r ".charms[0], .bundles[0]" | grep -v null').trim()
withCredentials([string(credentialsId: 'Charmstore', variable: 'CHARMCRAFT_AUTH')]) {
- commandOutput = sh(returnStdout:true, script: "charmcraft whoami")
try {
- println("Uploading $resourceName")
- sh "charmcraft upload --format json --verbosity brief $resourceName 1> upload.json 2> upload-stderr.log"
+ println("Uploading $charmFilename")
+ sh "charmcraft upload --format json --verbosity brief $charmFilename 1> upload.json 2> upload-stderr.log"
} catch (Exception e) {
def errorMessage = sh(
returnStdout: true,
def channel="latest"
if (BRANCH_NAME.startsWith("v")) {
channel=BRANCH_NAME.substring(1)
- } else if (BRANCH_NAME!="master") {
- REV="/"+BRANCH_NAME+REV.replaceAll('/','-')
+ } else if (BRANCH_NAME!="master" && JOB_NAME.contains('merge')) {
+ charmBranch=BRANCH_NAME
}
def charmName = sh(
returnStdout:true,
script: "if [ -f bundle.yaml ];then cat bundle.yaml;else cat metadata.yaml;fi|yq -r .name").trim()
- sh "charmcraft release ${charmName} --revision=${charmRevision} --channel=${channel}/edge/${charmBranch}"
+
+ def resourceArgument = ""
+ try {
+ def resourceName = sh(
+ returnStdout:true,
+ script: "cat metadata.yaml | yq '.resources | keys | .[0]'"
+ ).trim()
+ if( resourceName != "null" ) {
+ sh "charmcraft resource-revisions $charmName $resourceName | head -2 | tail -1 | awk '{print \$1}'"
+ def resourceVers = sh(
+ returnStdout:true,
+ script: "charmcraft resource-revisions $charmName $resourceName | head -2 | tail -1 | awk '{print \$1}'"
+ ).trim()
+
+ resourceArgument = "--resource $resourceName:$resourceVers"
+
+ resourceName = sh(
+ returnStdout:true,
+ script: "cat metadata.yaml | yq '.resources | keys | .[1]'").trim()
+
+ if( resourceName != "null" ) {
+ resourceVers = sh(
+ returnStdout:true,
+ script: "charmcraft resource-revisions $charmName $resourceName | head -2 | tail -1 | awk '{print \$1}'"
+ ).trim()
+ resourceArgument += " --resource $resourceName:$resourceVers"
+ }
+ }
+
+ } catch (Exception discard) {
+ print("No resource associated with bundle, skipping")
+ }
+
+ print("resourceArgument = $resourceArgument")
+
+ sh "charmcraft release ${charmName} --revision=${charmRevision} ${resourceArgument} --channel=${channel}/edge/${charmBranch}"
}
}
} finally {
def downstream_params_stage_3 = [
string(name: 'GERRIT_BRANCH', value: "${branch}"),
string(name: 'INSTALLER', value: "Default" ),
- string(name: 'OPENSTACK_BASE_IMAGE', value: "ubuntu20.04" ),
+ string(name: 'OPENSTACK_BASE_IMAGE', value: "ubuntu22.04" ),
string(name: 'UPSTREAM_JOB_NAME', value: "${JOB_NAME}" ),
string(name: 'UPSTREAM_JOB_NUMBER', value: "${BUILD_NUMBER}" ),
booleanParam(name: 'DO_STAGE_4', value: do_stage_4 )