xci: Adjust the recorded scenario metadata for promotion 33/54033/2
authorFatih Degirmenci <fdegir@gmail.com>
Sat, 17 Mar 2018 10:30:55 +0000 (11:30 +0100)
committerFatih Degirmenci <fdegir@gmail.com>
Sat, 17 Mar 2018 21:56:58 +0000 (22:56 +0100)
PROJECT_NAME is added into scenario metadata to use for promotion and xci dashboard.
Also, the metadata collected is aligned across different type of patches including
the skipped ones.

Change-Id: I3751884b48f5d9306d0cae35c757b976484b26a3
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
jjb/xci/xci-set-scenario.sh

index c602957..c3012cd 100755 (executable)
@@ -42,20 +42,22 @@ set -o pipefail
 function override_generic_scenario() {
     echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC"
 
+    # ensure the metadata we record is consistent for all types of patches including skipped ones
+    # extract releng-xci sha
+    XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD)
+
+    # extract scenario sha which is same as releng-xci sha for generic scenarios
+    SCENARIO_SHA=$XCI_SHA
+
     # process topic branch names
-    if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then
-        # skip the real verification
-        echo "Skipping verify!"
-        echo "INSTALLER_TYPE=osa" > $WORK_DIRECTORY/scenario.properties
-        echo "DEPLOY_SCENARIO=os-nosdn-nofeature" >> $WORK_DIRECTORY/scenario.properties
-        exit 0
-    elif [[ "$GERRIT_TOPIC" =~ 'force-verify' ]]; then
-        # Run the deployment with default installer and scenario when multiple things change
-        # and we want to force that.
-        echo "Recording the installer 'osa' and scenario 'os-nosdn-nofeature' for downstream jobs"
-        echo "Forcing CI verification of default scenario and installer!"
+    if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment|force-verify ]]; then
+        [[ "$GERRIT_TOPIC" =~ force-verify ]] && echo "Forcing CI verification using default scenario and installer!"
+        [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]] && echo "Skipping verification!"
         echo "INSTALLER_TYPE=osa" > $WORK_DIRECTORY/scenario.properties
         echo "DEPLOY_SCENARIO=os-nosdn-nofeature" >> $WORK_DIRECTORY/scenario.properties
+        echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties
+        echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties
+        echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties
         exit 0
     fi
 
@@ -70,6 +72,9 @@ function override_generic_scenario() {
             echo "Recording the installer '$INSTALLER_TYPE' and scenario '$DEPLOY_SCENARIO' for downstream jobs"
             echo "INSTALLER_TYPE=$INSTALLER_TYPE" > $WORK_DIRECTORY/scenario.properties
             echo "DEPLOY_SCENARIO=$DEPLOY_SCENARIO" >> $WORK_DIRECTORY/scenario.properties
+            echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties
+            echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties
+            echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties
             exit 0
         fi
     else
@@ -110,10 +115,10 @@ function determine_generic_scenario() {
     done
 
     # extract releng-xci sha
-    RELENG_XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD)
+    XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD)
 
     # extract scenario sha which is same as releng-xci sha for generic scenarios
-    SCENARIO_SHA=$RELENG_XCI_SHA
+    SCENARIO_SHA=$XCI_SHA
 }
 
 # This function determines the impacted external scenario by processing the Gerrit
@@ -142,7 +147,7 @@ function determine_external_scenario() {
     DEPLOY_SCENARIO+=$(git diff HEAD^..HEAD --name-only | grep scenarios | awk -F '[/|/]' '{print $2}' | uniq)
 
     # extract releng-xci sha
-    RELENG_XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD)
+    XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD)
 
     # extract scenario sha
     SCENARIO_SHA=$(cd $WORK_DIRECTORY/$GERRIT_PROJECT && git rev-parse HEAD)
@@ -194,8 +199,9 @@ esac
 echo "Recording the installer '$INSTALLER_TYPE' and scenario '${DEPLOY_SCENARIO[0]}' and SHAs for downstream jobs"
 echo "INSTALLER_TYPE=$INSTALLER_TYPE" > $WORK_DIRECTORY/scenario.properties
 echo "DEPLOY_SCENARIO=$DEPLOY_SCENARIO" >> $WORK_DIRECTORY/scenario.properties
-echo "RELENG_XCI_SHA=$RELENG_XCI_SHA" >> $WORK_DIRECTORY/scenario.properties
+echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties
 echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties
+echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties
 
 # skip scenario support check if the job is promotion job
 if [[ "$JOB_NAME" =~ (os|k8) ]]; then