mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
This change moves the azure deployment script from the root of the project into the bin subdirectory with a name that makes its purpose more clear. .deployment file has been updated to execute the new path.
135 lines
3.6 KiB
Bash
Executable File
135 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ----------------------
|
|
# KUDU Deployment Script
|
|
# Version: 0.1.11
|
|
# ----------------------
|
|
|
|
# Helpers
|
|
# -------
|
|
|
|
exitWithMessageOnError () {
|
|
if [ ! $? -eq 0 ]; then
|
|
echo "An error has occurred during web site deployment."
|
|
echo $1
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Prerequisites
|
|
# -------------
|
|
|
|
# Verify node.js installed
|
|
hash node 2>/dev/null
|
|
exitWithMessageOnError "Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment."
|
|
|
|
# Setup
|
|
# -----
|
|
|
|
SCRIPT_DIR="${BASH_SOURCE[0]%\\*}"
|
|
SCRIPT_DIR="${SCRIPT_DIR%/*}"
|
|
ARTIFACTS=$SCRIPT_DIR/../artifacts
|
|
KUDU_SYNC_CMD=${KUDU_SYNC_CMD//\"}
|
|
|
|
if [[ ! -n "$DEPLOYMENT_SOURCE" ]]; then
|
|
DEPLOYMENT_SOURCE=$SCRIPT_DIR
|
|
fi
|
|
|
|
if [[ ! -n "$NEXT_MANIFEST_PATH" ]]; then
|
|
NEXT_MANIFEST_PATH=$ARTIFACTS/manifest
|
|
|
|
if [[ ! -n "$PREVIOUS_MANIFEST_PATH" ]]; then
|
|
PREVIOUS_MANIFEST_PATH=$NEXT_MANIFEST_PATH
|
|
fi
|
|
fi
|
|
|
|
if [[ ! -n "$DEPLOYMENT_TARGET" ]]; then
|
|
DEPLOYMENT_TARGET=$ARTIFACTS/wwwroot
|
|
else
|
|
KUDU_SERVICE=true
|
|
fi
|
|
|
|
if [[ ! -n "$KUDU_SYNC_CMD" ]]; then
|
|
# Install kudu sync
|
|
echo Installing Kudu Sync
|
|
npm install kudusync -g --silent
|
|
exitWithMessageOnError "npm failed"
|
|
|
|
if [[ ! -n "$KUDU_SERVICE" ]]; then
|
|
# In case we are running locally this is the correct location of kuduSync
|
|
KUDU_SYNC_CMD=kuduSync
|
|
else
|
|
# In case we are running on kudu service this is the correct location of kuduSync
|
|
KUDU_SYNC_CMD=$APPDATA/npm/node_modules/kuduSync/bin/kuduSync
|
|
fi
|
|
fi
|
|
|
|
# Node Helpers
|
|
# ------------
|
|
|
|
selectNodeVersion () {
|
|
if [[ -n "$KUDU_SELECT_NODE_VERSION_CMD" ]]; then
|
|
SELECT_NODE_VERSION="$KUDU_SELECT_NODE_VERSION_CMD \"$DEPLOYMENT_SOURCE\" \"$DEPLOYMENT_TARGET\" \"$DEPLOYMENT_TEMP\""
|
|
eval $SELECT_NODE_VERSION
|
|
exitWithMessageOnError "select node version failed"
|
|
|
|
if [[ -e "$DEPLOYMENT_TEMP/__nodeVersion.tmp" ]]; then
|
|
NODE_EXE=`cat "$DEPLOYMENT_TEMP/__nodeVersion.tmp"`
|
|
exitWithMessageOnError "getting node version failed"
|
|
fi
|
|
|
|
if [[ -e "$DEPLOYMENT_TEMP/__npmVersion.tmp" ]]; then
|
|
NPM_JS_PATH=`cat "$DEPLOYMENT_TEMP/__npmVersion.tmp"`
|
|
exitWithMessageOnError "getting npm version failed"
|
|
fi
|
|
|
|
if [[ ! -n "$NODE_EXE" ]]; then
|
|
NODE_EXE=node
|
|
fi
|
|
|
|
NPM_CMD="\"$NODE_EXE\" \"$NPM_JS_PATH\""
|
|
else
|
|
NPM_CMD=npm
|
|
NODE_EXE=node
|
|
fi
|
|
}
|
|
|
|
##################################################################################################################################
|
|
# Deployment
|
|
# ----------
|
|
|
|
echo Handling node.js deployment.
|
|
echo "\"$SCM_COMMIT_ID\"" > $DEPLOYMENT_SOURCE/scm-commit-id.json
|
|
|
|
# 1. KuduSync
|
|
if [[ "$IN_PLACE_DEPLOYMENT" -ne "1" ]]; then
|
|
"$KUDU_SYNC_CMD" -v 50 -f "$DEPLOYMENT_SOURCE" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;.deployment;bin/azure-deploy.sh"
|
|
exitWithMessageOnError "Kudu Sync failed"
|
|
fi
|
|
|
|
# 2. Select node version
|
|
selectNodeVersion
|
|
|
|
# 3. Install npm packages
|
|
if [ -e "$DEPLOYMENT_TARGET/package.json" ]; then
|
|
cd "$DEPLOYMENT_TARGET"
|
|
echo Installing webpack and webpack-command and yargs
|
|
eval $NPM_CMD install -g webpack webpack-command
|
|
eval $NPM_CMD install yargs
|
|
eval $NPM_CMD install --production --scripts-prepend-node-path
|
|
exitWithMessageOnError "npm failed"
|
|
cd - > /dev/null
|
|
fi
|
|
|
|
##################################################################################################################################
|
|
|
|
# Post deployment stub
|
|
if [[ -n "$POST_DEPLOYMENT_ACTION" ]]; then
|
|
POST_DEPLOYMENT_ACTION=${POST_DEPLOYMENT_ACTION//\"}
|
|
cd "${POST_DEPLOYMENT_ACTION_DIR%\\*}"
|
|
"$POST_DEPLOYMENT_ACTION"
|
|
exitWithMessageOnError "post deployment action failed"
|
|
fi
|
|
|
|
echo "Finished successfully."
|