forked from microsoft/python-sample-vscode-django-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
executable file
·131 lines (102 loc) · 3.6 KB
/
deploy.sh
File metadata and controls
executable file
·131 lines (102 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash
# ----------------------
# KUDU Deployment Script
# Version: 1.0.17
# ----------------------
# 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
# ------------
selectPythonVersion () {
if [[ -n "$KUDU_SELECT_PYTHON_VERSION_CMD" ]]; then
SELECT_PYTHON_VERSION="$KUDU_SELECT_PYTHON_VERSION_CMD \"$DEPLOYMENT_SOURCE\" \"$DEPLOYMENT_TARGET\" \"$DEPLOYMENT_TEMP\""
eval $SELECT_PYTHON_VERSION
exitWithMessageOnError "select pyhon version failed"
if [[ -e "$DEPLOYMENT_TEMP/__PYTHON_RUNTIME.tmp" ]]; then
PYTHON_RUNTIME=`cat "$DEPLOYMENT_TEMP/__PYTHON_RUNTIME.tmp"`
exitWithMessageOnError "getting python runtime failed"
fi
if [[ -e "$DEPLOYMENT_TEMP/__PYTHON_VER.tmp" ]]; then
PYTHON_VER=`cat "$DEPLOYMENT_TEMP/__PYTHON_VER.tmp"`
exitWithMessageOnError "getting python version failed"
fi
if [[ -e "$DEPLOYMENT_TEMP/__PYTHON_ENV_MODULE.tmp" ]]; then
PYTHON_ENV_MODULE=`cat "$DEPLOYMENT_TEMP/__PYTHON_ENV_MODULE.tmp"`
exitWithMessageOnError "getting python env failed"
fi
if [[ -e "$DEPLOYMENT_TEMP/__PYTHON_EXE.tmp" ]]; then
PYTHON_EXE=`cat "$DEPLOYMENT_TEMP/__PYTHON_EXE.tmp"`
exitWithMessageOnError "getting python exe failed"
fi
if [[ ! -n "$PYTHON_EXE" ]]; then
PYTHON_EXE=python
fi
else
PYTHON_RUNTIME=python-2.7
PYTHON_VER=2.7
PYTHON_ENV_MODULE=virtualenv
fi
}
##################################################################################################################################
# Deployment
# ----------
echo Handling django 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"
exitWithMessageOnError "Kudu Sync failed"
fi
# 2. Select python version
selectPythonVersion
:: 4. Install packages
echo Pip install requirements.
$DEPLOYMENT_TARGET/antenv/scripts/pip install -r requirements.txt
$DEPLOYMENT_TARGET/antenv/scripts/python manage.py migrate
#$DEPLOYMENT_TARGET/antenv/scripts/python manage.py runserver
##################################################################################################################################
echo "Finished successfully."