Merge "cloud-infra: Allow the use of specific PDF/IDF for k8-eno-ovs job"
[infra/cicd.git] / jjb / cloud-infra / scripts / generate-change-metadata.sh
index e2c6a0f0de8b5b74bc0705ecdc84f4126cc1835d..7517232223f6f36a5f7a0fea44dde353282250c2 100755 (executable)
@@ -42,8 +42,15 @@ function determine_dependency() {
 
   echo "Info  : Processing change $DEPENDENT_CHANGE_ID"
   declare -a DEPENDENT_CHANGE_METADATA
-  readarray -t DEPENDENT_CHANGE_METADATA < <(curl -s "https://gerrit.nordix.org/changes/?q=$DEPENDENT_CHANGE_ID&o=CURRENT_REVISION" 2>&1 \
-      | grep "project\|status\|current_revision\|ref.*," | sed -e 's/\s//g' -e 's/,//g' -e 's/"//g'| cut -d: -f2)
+  # NOTE (cian): upgrades to Gerrit appear to change the output of the previously-used endpoint
+  # https://gerrit.nordix.org/changes/?q=$DEPENDENT_CHANGE_ID&o=CURRENT_REVISION so moving to
+  # gerrit SSH-based queries instead
+  GIT_BASE_SSH_CMD=$(echo "${GIT_BASE_SSH}" | sed -e 's#://# #g' | sed -e 's#:# -p #g')
+  readarray -t DEPENDENT_CHANGE_METADATA < <(
+    ${GIT_BASE_SSH_CMD} gerrit query --format=json change:${DEPENDENT_CHANGE_ID} --current-patch-set |\
+      head -1 |\
+      jq -r '[.project, .status, .currentPatchSet.revision, .currentPatchSet.ref] | join("\n")'
+  )
 
   # NOTE (fdegir): check if the dependeny change exists
   # and ignore if it doesn't
@@ -103,6 +110,17 @@ echo "Info  : Generating change metadata"
 # this scripts is used by all engine repos so we need to determine what this change is for
 export ENGINE_COMPONENT="${GERRIT_PROJECT//*\//}"
 
+# Check if we need to override the deploy scenario.
+if ! echo "$GERRIT_CHANGE_COMMIT_MESSAGE" | grep -qs "^Deploy-Scenario:"; then
+  echo "Info  : No DEPLOY_SCENARIO override found."
+else
+  echo "Info  : DEPLOY_SCENARIO override found!"
+  echo "Info  : Before override: DEPLOY_SCENARIO=${DEPLOY_SCENARIO}"
+  DEPLOY_SCENARIO=$(echo "$GERRIT_CHANGE_COMMIT_MESSAGE" | grep '^Deploy-Scenario:' | cut -d ":" -f2 | sed 's/\s*//g')
+  export DEPLOY_SCENARIO
+  echo "Info  : After override: DEPLOY_SCENARIO=${DEPLOY_SCENARIO}"
+fi
+
 echo "Info  : Setting STACK_TYPE and STACK_VERSION"
 if [[ "$GERRIT_PROJECT" =~ /stack/ ]]; then
   # set vars
@@ -160,6 +178,7 @@ export NORDIX_ARM_HTTPS_URL="https://artifactory.nordix.org/artifactory"
 export ARTIFACT_ARM_FOLDER="gerrit"
 export BUILD_IDENTIFIER=$GERRIT_CHANGE_NUMBER
 export OFFLINE_INSTALLER_FILE="/tmp/${STACK_TYPE}-${GERRIT_BRANCH}-${DISTRO}.bsx"
+export OFFLINE_XTESTING_FILE="/tmp/${STACK_TYPE}-test-${GERRIT_BRANCH}.bsx"
 export BUILD_ARTIFACTS="/tmp/${STACK_TYPE}-${GERRIT_BRANCH}-${DISTRO}.bsx"
 export NORDIX_ARM_REPO="nordix-${STACK_TYPE}"
 export NORDIX_ARTIFACT_URL="$NORDIX_ARM_HTTPS_URL/$NORDIX_ARM_REPO/oss/$ARTIFACT_ARM_FOLDER/$BUILD_IDENTIFIER"
@@ -172,6 +191,7 @@ DISTRO=$DISTRO
 CI_LOOP=$CI_LOOP
 ENGINE_SHA=$(git rev-parse HEAD)
 OFFLINE_INSTALLER_FILE=$OFFLINE_INSTALLER_FILE
+OFFLINE_XTESTING_FILE=$OFFLINE_XTESTING_FILE
 BUILD_ARTIFACTS=$BUILD_ARTIFACTS
 NORDIX_ARM_REPO=nordix-${STACK_TYPE}
 NORDIX_ARTIFACT_URL=$NORDIX_ARTIFACT_URL