engine: Implement change dependency handling
[infra/cicd.git] / jjb / engine / scripts / deploy.sh
index cfaa8c079917fdb6f632267595f1e1fe2dca458c..0302e776a54db534f8d2d24b9257af59022c0b3e 100755 (executable)
@@ -22,9 +22,21 @@ set -o nounset
 set -o errexit
 set -o pipefail
 
-if [[ "$EXECUTION_MODE" == "offline-deployment" && "$PROVISIONER_TYPE" == "heat" ]]; then
-  echo "Info  : Offline deployments on cloud instances is not currently supported!"
-  exit 0
+# NOTE (fdegir): we need to remove $WORKSPACE and clone infra/engine repository
+# as infra/engine is what drives the deployment
+if [[ "$GERRIT_PROJECT" != "infra/engine" ]]; then
+  cd "$HOME" && /bin/rm -rf "$WORKSPACE"
+  echo "Info : Cloning infra/engine repository"
+  git clone -q https://gerrit.nordix.org/infra/engine.git "$WORKSPACE"
+  cd "$WORKSPACE"
+fi
+
+# NOTE (fdegir): this variable is set by generate-change-metadata.sh script
+# if a dependency to engine repo is determined so we check out that refspec
+# to ensure we respect the dependency
+if [[ ! -z "${NORDIX_ENGINE_REFSPEC+x}" ]]; then
+  echo "Info  : Fetching dependent change ${NORDIX_ENGINE_REFSPEC} infra/engine"
+  git fetch "https://gerrit.nordix.org/infra/engine" ${NORDIX_ENGINE_REFSPEC} && git checkout FETCH_HEAD
 fi
 
 if [[ "$EXECUTION_MODE" == "offline-deployment" ]]; then
@@ -33,8 +45,17 @@ else
   ENGINE_ROOT_DIR="$WORKSPACE"
 fi
 
+# NOTE (fdegir): for bifrost based deployments, we don't need these files so we fake them
+OPENRC_FILE=${OPENRC_FILE:-/tmp/openrc}
+HEAT_ENVIRONMENT_FILENAME=${HEAT_ENVIRONMENT_FILENAME:-/tmp/heat}
+
 /bin/cp -f $OPENRC_FILE /tmp/openrc
+
 cd "$ENGINE_ROOT_DIR/engine"
-./deploy.sh -d "$INSTALLER_TYPE" -s "$DEPLOY_SCENARIO" -b "file://$ENGINE_ROOT_DIR/engine/inventory/group_vars/all/sdf.yaml" \
-    -r "$PROVISIONER_TYPE" -p "$PDF" -i "$IDF" -u /tmp/openrc \
-    -e "file://$ENGINE_ROOT_DIR/engine/provisioner/heat/playbooks/roles/bootstrap-hwconfig/files/$HEAT_ENVIRONMENT_FILENAME"
+./deploy.sh -s "$STACK_TYPE" -b "$STACK_VERSION" -c "$DEPLOY_SCENARIO" -p "$PDF" -i "$IDF" -o /tmp/openrc -d "$DISTRO" -v
+
+# NOTE (fdegir): we need inventory.ini for test execution
+/bin/rm -f /tmp/inventory.ini
+/bin/cp -f /opt/engine/.cache/config/inventory.ini /tmp/inventory.ini
+
+# vim: set ts=2 sw=2 expandtab: