Last active
August 25, 2017 07:21
-
-
Save sn123/4ff6c4ee6c26fa1b5ba7ddff1c52b515 to your computer and use it in GitHub Desktop.
A kudu deployment script for a WordPress site using bower and gulp for front-end
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# ---------------------- | |
# KUDU Deployment Script | |
# Version: 1.0.15 | |
# ---------------------- | |
# Helpers | |
# ------- | |
set -e | |
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 | |
pushd "$DEPLOYMENT_SOURCE/wp-content/themes/theme/" | |
echo "Installing bower" | |
npm install bower@1.8.0 --silent | |
exitWithMessageOnError "bower failed" | |
echo "Installing gulp" | |
npm install gulp@3.9.1 --silent | |
exitWithMessageOnError "gulp failed" | |
echo "Installing local packages" | |
npm install --silent | |
echo "Installing bower packages" | |
./node_modules/.bin/bower install | |
echo "Running gulp" | |
./node_modules/.bin/gulp --production | |
popd | |
################################################################################################################################## | |
# Deployment | |
# ---------- | |
echo Handling Basic Web Site deployment. | |
# 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;deploy.sh;node_modules;bower_components" | |
exitWithMessageOnError "Kudu Sync failed" | |
fi | |
################################################################################################################################## | |
pushd "$DEPLOYMENT_SOURCE/wp-content/themes/theme/" | |
rm -rf dist/ | |
popd | |
echo "Finished successfully." | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment