+# This function determines the default scenario for changes coming to releng-xci
+# by processing the Gerrit change and using diff to see what changed.
+#
+# The stuff in releng-xci is for the installer and other common things so the
+# determination is based on those.
+#
+# Pattern
+# releng-xci/installer/<installer_type>/<impacted files>: <scenario>
+function determine_default_scenario() {
+ echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC"
+
+ # get the changeset
+ cd $WORKSPACE
+ # We need to set default scenario for changes that mess with installers
+ INSTALLERS=$(git diff HEAD^..HEAD --name-only -- 'xci/installer' | cut -d "/" -f 3 | uniq)
+ for CHANGED_INSTALLER in $INSTALLERS; do
+ case $CHANGED_INSTALLER in
+ kubespray)
+ DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature'
+ ;;
+ # Default case (including OSA changes)
+ *)
+ DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature'
+ ;;
+ esac
+ done
+ # For all other changes, we only need to set a default scenario if it's not set already
+ if git diff HEAD^..HEAD --name-only | grep -q -v 'xci/installer'; then
+ [[ ${#DEPLOY_SCENARIO[@]} -eq 0 ]] && DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature'
+ fi
+
+ # extract releng-xci sha
+ XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD)
+
+ # TODO: we need to fix this so we actually extract the scenario sha by cloning releng-xci-scenarios
+ # for the determined scenario. it is crucial for promotion...
+ SCENARIO_SHA=$XCI_SHA
+}
+