Skip to content

Commit 9f8aa8e

Browse files
committed
more change;
1 parent 3e6a1c0 commit 9f8aa8e

File tree

2 files changed

+206
-0
lines changed

2 files changed

+206
-0
lines changed

deploy.cmd

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
@if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off
2+
3+
:: ----------------------
4+
:: KUDU Deployment Script
5+
:: Version: 0.1.13
6+
:: ----------------------
7+
8+
:: Prerequisites
9+
:: -------------
10+
11+
:: Verify node.js installed
12+
where node 2>nul >nul
13+
IF %ERRORLEVEL% NEQ 0 (
14+
echo Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment.
15+
goto error
16+
)
17+
18+
:: Setup
19+
:: -----
20+
21+
setlocal enabledelayedexpansion
22+
23+
SET ARTIFACTS=%~dp0%..\artifacts
24+
25+
IF NOT DEFINED DEPLOYMENT_SOURCE (
26+
SET DEPLOYMENT_SOURCE=%~dp0%.
27+
)
28+
29+
IF NOT DEFINED DEPLOYMENT_TARGET (
30+
SET DEPLOYMENT_TARGET=%ARTIFACTS%\wwwroot
31+
)
32+
33+
IF NOT DEFINED NEXT_MANIFEST_PATH (
34+
SET NEXT_MANIFEST_PATH=%ARTIFACTS%\manifest
35+
36+
IF NOT DEFINED PREVIOUS_MANIFEST_PATH (
37+
SET PREVIOUS_MANIFEST_PATH=%ARTIFACTS%\manifest
38+
)
39+
)
40+
41+
IF NOT DEFINED KUDU_SYNC_CMD (
42+
:: Install kudu sync
43+
echo Installing Kudu Sync
44+
call npm install kudusync -g --silent
45+
IF !ERRORLEVEL! NEQ 0 goto error
46+
47+
:: Locally just running "kuduSync" would also work
48+
SET KUDU_SYNC_CMD=%appdata%\npm\kuduSync.cmd
49+
)
50+
goto Deployment
51+
52+
:: Utility Functions
53+
:: -----------------
54+
55+
:SelectPythonVersion
56+
57+
IF DEFINED KUDU_SELECT_PYTHON_VERSION_CMD (
58+
call %KUDU_SELECT_PYTHON_VERSION_CMD% "%DEPLOYMENT_SOURCE%" "%DEPLOYMENT_TARGET%" "%DEPLOYMENT_TEMP%"
59+
IF !ERRORLEVEL! NEQ 0 goto error
60+
61+
SET /P PYTHON_RUNTIME=<"%DEPLOYMENT_TEMP%\__PYTHON_RUNTIME.tmp"
62+
IF !ERRORLEVEL! NEQ 0 goto error
63+
64+
SET /P PYTHON_VER=<"%DEPLOYMENT_TEMP%\__PYTHON_VER.tmp"
65+
IF !ERRORLEVEL! NEQ 0 goto error
66+
67+
SET /P PYTHON_EXE=<"%DEPLOYMENT_TEMP%\__PYTHON_EXE.tmp"
68+
IF !ERRORLEVEL! NEQ 0 goto error
69+
70+
SET /P PYTHON_ENV_MODULE=<"%DEPLOYMENT_TEMP%\__PYTHON_ENV_MODULE.tmp"
71+
IF !ERRORLEVEL! NEQ 0 goto error
72+
) ELSE (
73+
SET PYTHON_RUNTIME=python-2.7
74+
SET PYTHON_VER=2.7
75+
SET PYTHON_EXE=%SYSTEMDRIVE%\python27\python.exe
76+
SET PYTHON_ENV_MODULE=virtualenv
77+
)
78+
79+
goto :EOF
80+
81+
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
82+
:: Deployment
83+
:: ----------
84+
85+
:Deployment
86+
echo Handling python deployment.
87+
88+
:: 1. KuduSync
89+
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
90+
call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_SOURCE%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd"
91+
IF !ERRORLEVEL! NEQ 0 goto error
92+
)
93+
94+
IF NOT EXIST "%DEPLOYMENT_TARGET%\requirements.txt" goto postPython
95+
IF EXIST "%DEPLOYMENT_TARGET%\.skipPythonDeployment" goto postPython
96+
97+
echo Detected requirements.txt. You can skip Python specific steps with a .skipPythonDeployment file.
98+
99+
:: 2. Select Python version
100+
call :SelectPythonVersion
101+
102+
pushd "%DEPLOYMENT_TARGET%"
103+
104+
:: 3. Create virtual environment
105+
IF NOT EXIST "%DEPLOYMENT_TARGET%\env\azure.env.%PYTHON_RUNTIME%.txt" (
106+
IF EXIST "%DEPLOYMENT_TARGET%\env" (
107+
echo Deleting incompatible virtual environment.
108+
rmdir /q /s "%DEPLOYMENT_TARGET%\env"
109+
IF !ERRORLEVEL! NEQ 0 goto error
110+
)
111+
112+
echo Creating %PYTHON_RUNTIME% virtual environment.
113+
%PYTHON_EXE% -m %PYTHON_ENV_MODULE% env
114+
IF !ERRORLEVEL! NEQ 0 goto error
115+
116+
copy /y NUL "%DEPLOYMENT_TARGET%\env\azure.env.%PYTHON_RUNTIME%.txt" >NUL
117+
) ELSE (
118+
echo Found compatible virtual environment.
119+
)
120+
121+
:: 4. Install packages
122+
echo Pip install requirements.
123+
env\scripts\pip install -r requirements.txt
124+
IF !ERRORLEVEL! NEQ 0 goto error
125+
126+
REM Add additional package installation here
127+
REM -- Example --
128+
REM env\scripts\easy_install pytz
129+
REM IF !ERRORLEVEL! NEQ 0 goto error
130+
131+
:: 5. Copy web.config
132+
IF EXIST "%DEPLOYMENT_SOURCE%\web.%PYTHON_VER%.config" (
133+
echo Overwriting web.config with web.%PYTHON_VER%.config
134+
copy /y "%DEPLOYMENT_SOURCE%\web.%PYTHON_VER%.config" "%DEPLOYMENT_TARGET%\web.config"
135+
)
136+
137+
:: 6. Django collectstatic
138+
IF EXIST "%DEPLOYMENT_TARGET%\manage.py" (
139+
IF EXIST "%DEPLOYMENT_TARGET%\env\lib\site-packages\django" (
140+
IF NOT EXIST "%DEPLOYMENT_TARGET%\.skipDjango" (
141+
echo Collecting Django static files. You can skip Django specific steps with a .skipDjango file.
142+
IF NOT EXIST "%DEPLOYMENT_TARGET%\static" (
143+
MKDIR "%DEPLOYMENT_TARGET%\static"
144+
)
145+
env\scripts\python manage.py collectstatic --noinput --clear
146+
)
147+
)
148+
)
149+
150+
IF EXIST "autocomplete.py"(
151+
echo sweet!
152+
env\scripts\python autocomplete.py
153+
)
154+
155+
echo welp
156+
157+
popd
158+
159+
:postPython
160+
161+
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
162+
163+
:: Post deployment stub
164+
IF DEFINED POST_DEPLOYMENT_ACTION call "%POST_DEPLOYMENT_ACTION%"
165+
IF !ERRORLEVEL! NEQ 0 goto error
166+
167+
goto end
168+
169+
:: Execute command routine that will echo out when error
170+
:ExecuteCmd
171+
setlocal
172+
set _CMD_=%*
173+
call %_CMD_%
174+
if "%ERRORLEVEL%" NEQ "0" echo Failed exitCode=%ERRORLEVEL%, command=%_CMD_%
175+
exit /b %ERRORLEVEL%
176+
177+
:error
178+
endlocal
179+
echo An error has occurred during web site deployment.
180+
call :exitSetErrorLevel
181+
call :exitFromFunction 2>nul
182+
183+
:exitSetErrorLevel
184+
exit /b 1
185+
186+
:exitFromFunction
187+
()
188+
189+
:end
190+
endlocal
191+
echo Finished successfully.

requirements.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Flask==0.10.1
2+
nltk
3+
SlackClient
4+
sklearn
5+
numpy
6+
alchemyapi
7+
shelve
8+
codecs
9+
hashlib
10+
doctest
11+
re
12+
simplejson
13+
multiprocessing
14+
tornado
15+
random

0 commit comments

Comments
 (0)