oom-upload.sh: fix uploading latest version
[infra/cicd.git] / jjb / cloud-infra / scripts / oom-upload.sh
index 6e9e6c4ea3296da5ce7ea68145d3a1e3c3abdaba..696e0ea747dc605352bfa45fdf77c10c53acc4d6 100644 (file)
 set -o errexit
 set -o pipefail
 
-ONAP_UMBRELLA_CHART="${WORKSPACE}/build/onap-oom/kubernetes/dist/packages/onap-${ONAP_OOM_CHART_VERSION}.tgz"
-IMAGES_LIST="${WORKSPACE}/images.txt"
-export NORDIX_ARM_REPO="nordix-oom"
+YQ_BIN="${WORKSPACE}/bin/yq"
+ONAP_OOM_GIT_REVISION=$(cd "${WORKSPACE}/build/onap-oom" && git rev-parse --short HEAD)
+ONAP_OOM_VERSION=$(${YQ_BIN} e '.version' "${WORKSPACE}/build/onap-oom/kubernetes/onap/Chart.yaml")
+ONAP_OOM_VERSION_LATEST="${ONAP_OOM_VERSION//${ONAP_OOM_GIT_REVISION}/latest}"
+
+ONAP_UMBRELLA_CHART="${WORKSPACE}/build/onap-oom/kubernetes/dist/packages/onap-${ONAP_OOM_VERSION}.tgz"
+IMAGES_LIST="${WORKSPACE}/onap-${ONAP_OOM_VERSION}_images.txt"
+
+export NORDIX_ARM_REPO="onap"
 export ARTIFACT_ARM_FOLDER="oom"
 export BUILD_IDENTIFIER="${ONAP_OOM_GIT_REVISION}"
 export NORDIX_ARTIFACT_URL="${NORDIX_ARM_HTTPS_URL}/${NORDIX_ARM_REPO}/${ARTIFACT_ARM_FOLDER}/${BUILD_IDENTIFIER}"
+export NORDIX_ARTIFACT_URL_LATEST="${NORDIX_ARM_HTTPS_URL}/${NORDIX_ARM_REPO}/${ARTIFACT_ARM_FOLDER}/latest"
 
 echo "Info  : Pushing ONAP umbrella chart to Nordix Harbor"
-${HELM_BIN} push "${ONAP_UMBRELLA_CHART}" "${NORDIX_REGISTRY}"
+HELM_BIN="${WORKSPACE}/bin/helm"
+${HELM_BIN} repo remove onaptest || true
+${HELM_BIN} repo add onaptest "${NORDIX_REGISTRY}/chartrepo/onaptest"
+${HELM_BIN} push -f "${ONAP_UMBRELLA_CHART}" --username "${HARBOR_USERNAME}" --password "${HARBOR_PASSWORD}" onaptest
+# Also push with "latest" version
+${HELM_BIN} push -f "${ONAP_UMBRELLA_CHART}" --username "${HARBOR_USERNAME}" --password "${HARBOR_PASSWORD}" --version "${ONAP_OOM_VERSION_LATEST}" onaptest
 
-export BUILD_ARTIFACTS="${IMAGES_LIST}"
+export BUILD_ARTIFACTS="${ONAP_UMBRELLA_CHART} ${IMAGES_LIST}"
 echo "Info  : Uploading ${BUILD_ARTIFACTS} to Nordix ARM ${NORDIX_ARM_REPO} repository"
 for BUILD_ARTIFACT in $BUILD_ARTIFACTS; do
   echo "Info  : Generating checksums for $BUILD_ARTIFACT"
@@ -39,7 +51,11 @@ for BUILD_ARTIFACT in $BUILD_ARTIFACTS; do
   ARTIFACT_SHASUM=$(shasum "${BUILD_ARTIFACT}" | cut -d' ' -f1)
   ARTIFACT_SHA256SUM=$(sha256sum "${BUILD_ARTIFACT}" | cut -d' ' -f1)
 
-  REMOTE_ARTIFACT=$(echo "${BUILD_ARTIFACT}" | sed 's/.*\///g')
+  REMOTE_ARTIFACT=$(basename "${BUILD_ARTIFACT}")
+  REMOTE_ARTIFACT_LATEST=$(basename "${BUILD_ARTIFACT//${ONAP_OOM_GIT_REVISION}/latest}")
+  # NOTE(cian): URL-encoding remote artifact as filename may contain special characters
+  REMOTE_ARTIFACT_QUOTED=$(echo -n "${REMOTE_ARTIFACT}" | python3 -c 'from sys import stdout, stdin; from urllib.parse import quote; stdout.write(quote(stdin.read()))')
+  REMOTE_ARTIFACT_LATEST_QUOTED=$(echo -n "${REMOTE_ARTIFACT_LATEST}" | python3 -c 'from sys import stdout, stdin; from urllib.parse import quote; stdout.write(quote(stdin.read()))')
 
   echo "Info  : Uploading ${BUILD_ARTIFACT} to Nordix Artifactory"
   curl -s -S \
@@ -49,7 +65,16 @@ for BUILD_ARTIFACT in $BUILD_ARTIFACTS; do
       -H "X-Checksum-Sha256:${ARTIFACT_SHA256SUM}" \
       -T "${BUILD_ARTIFACT}" \
       "${NORDIX_ARTIFACT_URL}/${REMOTE_ARTIFACT}"
-  echo "Info  : Artifact ${BUILD_ARTIFACT} is available on ${NORDIX_ARTIFACT_URL}/${REMOTE_ARTIFACT}"
+  echo "Info  : Artifact ${BUILD_ARTIFACT} is available on ${NORDIX_ARTIFACT_URL}/${REMOTE_ARTIFACT_QUOTED}"
+  echo "Info  : Uploading ${BUILD_ARTIFACT} to Nordix Artifactory as ${REMOTE_ARTIFACT_LATEST}"
+  curl -s -S \
+      -H "X-JFrog-Art-Api:${NORDIX_ARM_TOKEN}" \
+      -H "X-Checksum-MD5:${ARTIFACT_MD5SUM}" \
+      -H "X-Checksum-Sha1:${ARTIFACT_SHASUM}" \
+      -H "X-Checksum-Sha256:${ARTIFACT_SHA256SUM}" \
+      -T "${BUILD_ARTIFACT}" \
+      "${NORDIX_ARTIFACT_URL_LATEST}/${REMOTE_ARTIFACT_LATEST}"
+  echo "Info  : Artifact ${BUILD_ARTIFACT} available on ${NORDIX_ARTIFACT_URL_LATEST}/${REMOTE_ARTIFACT_LATEST_QUOTED}"
 done
 
 echo "Done!"