Knocks/BackEnd/Knoks.Api/Deploy/deploy-api.d01.cmd

65 lines
2.6 KiB
Batchfile

:: *** Knoks Ltd. by Vlad Amirov - 23/05/2017 ***
@ECHO OFF
TITLE Knoks API - deployment to d01 environmen script
ECHO === set vars =================================================================================
FOR %%A IN ("%~dp0\..") DO SET "PROJECT_DIR=%%~fA"
SET BACH_FILE_NAME_WITH_EXTENTION=%~n0%~x0
SET BACH_FILE_NAME_WITHOUT_EXTENTION=%~n0
SET SRC_SYNC=%PROJECT_DIR%\bin\Debug\netcoreapp1.1\publish
SET DST_SYNC=/home/ec2-user/ldi/Knoks.Api/publish
SET PRIVATEKEY_FILE=C:\Users\user\Dropbox\Dev\LDI\AWS\LDI-DEV-KP.ppk
ECHO Project directory: %PROJECT_DIR%
ECHO Bach file name with extention: %BACH_FILE_NAME_WITH_EXTENTION%
ECHO Bach file name withou extention: %BACH_FILE_NAME_WITHOUT_EXTENTION%
ECHO Source: %SRC_SYNC%
ECHO Destination: %DST_SYNC%
ECHO Private key file: %PRIVATEKEY_FILE%
ECHO.
ECHO === detect sync mode (update or preview) =====================================================
IF "%~1"=="u" (
SET PREVIEW_OPT=
ECHO Sync mode: UPDATE!
) ELSE (
SET PREVIEW_OPT=-preview
ECHO Sync mode: Preview
)
ECHO.
::ECHO === git pull by user's answer ================================================================
::CHOICE /N /C:yn /M "Run 'git pull' ? (y/n)"%1
::IF ERRORLEVEL 2 GOTO NoGitPull
::git pull
:::NoGitPull
::ECHO.
ECHO === compile and publish application ==========================================================
dotnet publish ..\Knoks.Api.csproj
ECHO === create logs folder if not exists for WinSCP.com ==========================================
IF EXIST "%PROJECT_DIR%\Deploy\Logs" (
ECHO Logs folder already exists
) ELSE (
ECHO Creat Logs folder
MKDIR "%PROJECT_DIR%\Deploy\Logs"
)
ECHO === run WinSCP ===============================================================================
::help link: https://winscp.net/eng/docs/scriptcommand_synchronize
"C:\Users\user\Dropbox\Dev\LDI\WinSCP\WinSCP.com" /log="%PROJECT_DIR%\Deploy\Logs\%BACH_FILE_NAME_WITHOUT_EXTENTION%.log" /ini=nul /command ^
"open scp://ec2-user@ec2-54-167-223-45.compute-1.amazonaws.com/ -hostkey=""ssh-ed25519 256 89:be:f3:ef:6b:64:fa:a0:e2:cc:01:e7:16:fd:a3:f7"" -privatekey=""%PRIVATEKEY_FILE%"" -rawsettings AuthGSSAPI=1 TimeDifference=""000000000000C03F"" TimeDifferenceAuto=0 SendBuf=0 SshSimple=0" ^
"call cd $HOME/ldi/Knoks.Api" ^
"call ./api-kill.sh" ^
"call ./api-set-backup.sh" ^
"synchronize remote %PREVIEW_OPT% -delete -preservetime -transfer=automatic %SRC_SYNC% %DST_SYNC%" ^
"call ./api-set-restore.sh" ^
"call ./api-run.sh" ^
"exit"
ECHO.
ECHO === script end ===============================================================================
ECHO Script completed! Press any key to exit...
PAUSE > NUL