string(defaultValue: 'ubuntu22.04', description: '', name: 'OPENSTACK_BASE_IMAGE'),
string(defaultValue: 'osm.sanity', description: '', name: 'OPENSTACK_OSM_FLAVOR'),
booleanParam(defaultValue: false, description: '', name: 'TRY_OLD_SERVICE_ASSURANCE'),
+ booleanParam(defaultValue: true, description: '', name: 'TRY_JUJU_INSTALLATION'),
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'),
String osmHostname,
String prometheusHostname,
Integer prometheusPort=null,
+ String ociRegistryUrl,
String envfile=null,
String portmappingfile=null,
String kubeconfig=null,
}
try {
- sh("""docker run --env OSM_HOSTNAME=${osmHostname} --env PROMETHEUS_HOSTNAME=${prometheusHostname} \
- ${PROMETHEUS_PORT_VAR} ${JUJU_PASSWORD_VAR} --env-file ${environmentFile} \
- -v ${clouds}:/etc/openstack/clouds.yaml \
- -v ${osmRSAfile}:/root/osm_id_rsa -v ${kubeconfig}:/root/.kube/config -v ${tempdir}:/robot-systest/reports \
- -v ${portmappingfile}:/root/port-mapping.yaml ${hostfilemount} opensourcemano/tests:${tagName} \
- -c -t ${testName}""")
+ withCredentials([usernamePassword(credentialsId: 'gitlab-oci-test',
+ passwordVariable: 'OCI_REGISTRY_PSW', usernameVariable: 'OCI_REGISTRY_USR')]) {
+ sh("""docker run --env OSM_HOSTNAME=${osmHostname} --env PROMETHEUS_HOSTNAME=${prometheusHostname} \
+ ${PROMETHEUS_PORT_VAR} ${JUJU_PASSWORD_VAR} --env-file ${environmentFile} \
+ --env OCI_REGISTRY_URL=${ociRegistryUrl} --env OCI_REGISTRY_USER=${OCI_REGISTRY_USR} \
+ --env OCI_REGISTRY_PASSWORD=${OCI_REGISTRY_PSW} \
+ -v ${clouds}:/etc/openstack/clouds.yaml -v ${osmRSAfile}:/root/osm_id_rsa \
+ -v ${kubeconfig}:/root/.kube/config -v ${tempdir}:/robot-systest/reports \
+ -v ${portmappingfile}:/root/port-mapping.yaml ${hostfilemount} opensourcemano/tests:${tagName} \
+ -c -t ${testName}""")
+ }
} finally {
sh("cp ${tempdir}/*.xml .")
sh("cp ${tempdir}/*.html .")
APT_PROXY = 'http://172.21.1.1:3142'
SSH_KEY = '~/hive/cicd_rsa'
ARCHIVE_LOGS_FLAG = false
+ OCI_REGISTRY_URL = 'oci://osm.etsi.org:5050/devops/test'
sh 'env'
tag_or_branch = params.GERRIT_BRANCH.replaceAll(/\./, '')
]
sshCommand remote: remote, command: '''
- wget https://osm-download.etsi.org/ftp/osm-13.0-thirteen/install_osm.sh
+ wget https://osm-download.etsi.org/ftp/osm-15.0-fifteen/install_osm.sh
chmod +x ./install_osm.sh
sed -i '1 i\\export PATH=/snap/bin:\$PATH' ~/.bashrc
'''
// Run -k8s installer here specifying internal docker registry and docker proxy
osm_installation_options = ""
if (params.TRY_OLD_SERVICE_ASSURANCE) {
- osm_installation_options = "--old-sa"
+ osm_installation_options = "${osm_installation_options} --old-sa"
+ }
+ if (params.TRY_JUJU_INSTALLATION) {
+ osm_installation_options = "${osm_installation_options} --juju --lxd"
}
withCredentials([gitlabCredentialsMap]) {
sshCommand remote: remote, command: """
osmHostname,
prometheusHostname,
prometheusPort,
+ OCI_REGISTRY_URL,
params.ROBOT_VIM,
params.ROBOT_PORT_MAPPING_VIM,
params.KUBECONFIG,
}
parallel parallelSteps
}
- stage('Snap promotion') {
- withCredentials([string(credentialsId: 'Snapstore', variable: 'SNAPCRAFT_STORE_CREDENTIALS')]) {
- snaps = ['osmclient']
- for (snap in snaps) {
- channel = 'latest/'
- 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: "snapcraft revisions $snap | " +
- "grep \"$track\" | tail -1 | awk '{print \$1}'").trim()
- track = channel + 'beta\\*'
- beta_rev = sh(returnStdout: true,
- script: "snapcraft revisions $snap | " +
- "grep \"$track\" | tail -1 | awk '{print \$1}'").trim()
-
- print "Edge: $edge_rev, Beta: $beta_rev"
-
- if (edge_rev != beta_rev) {
- print "Promoting $edge_rev to beta in place of $beta_rev"
- beta_track = channel + 'beta'
- sh "snapcraft release $snap $edge_rev $beta_track"
- }
- }
- }
- } // stage('Snap promotion')
- stage('Charm promotion') {
- charms = [
- 'osm', // bundle
- 'osm-ha', // bundle
- 'osm-grafana',
- 'osm-mariadb',
- 'mongodb-exporter-k8s',
- 'mysqld-exporter-k8s',
- 'osm-lcm',
- 'osm-mon',
- 'osm-nbi',
- 'osm-ng-ui',
- 'osm-pol',
- 'osm-ro',
- 'osm-prometheus',
- 'osm-update-db-operator',
- 'osm-vca-integrator',
- ]
- for (charm in charms) {
-
- channel = 'latest'
- if (BRANCH_NAME.startsWith('v')) {
- channel = BRANCH_NAME.substring(1)
- } else if (BRANCH_NAME != 'master') {
- channel += '/' + BRANCH_NAME.replaceAll('/', '-')
- }
-
- 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==\"$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==\"$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()
- beta_rev = sh(returnStdout: true, script: jqScriptBeta).trim()
- 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 $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} ${resourceArgument} --channel=${channel}/beta"
- }
-
- }
- }
- } // stage('Charm promotion')
} // if (params.DO_DOCKERPUSH)
} // stage('Archive')
} // if (params.SAVE_ARTIFACTS_OVERRIDE || stage_archive)