2017-06-14 129 views
1

我試圖在MS Azure上使用github和webapp設置持續集成部署過程。 Angular應用程序使用Angular CLI進行設置。當我推送到我的github-repo時,我希望網絡部署到天藍色的webapp。 我到目前爲止所做的:將Angular 2應用程序部署到Azure

-Angular app setup and running。代碼被推送到github-repo。

-I've創建自定義部署的腳本與KUDU(.deployment/deploy.cmd)

-webapp在蔚藍的創建和綁定到GitHub的

我的問題是構建被觸發時將代碼推到github上,但Angular-app似乎沒有被構建。取而代之的是\的dist-文件夾中包含源代碼文件夾的副本: enter image description here

我deploy.cmd文件看起來像這樣:

@if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off 

:: ---------------------- 
:: KUDU Deployment Script 
:: Version: 1.0.15 
:: ---------------------- 

:: Prerequisites 
:: ------------- 

:: Verify node.js installed 
where node 2>nul >nul 
IF %ERRORLEVEL% NEQ 0 (
    echo Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment. 
    goto error 
) 

:: Setup 
:: ----- 

setlocal enabledelayedexpansion 

SET ARTIFACTS=%~dp0%..\artifacts 

IF NOT DEFINED DEPLOYMENT_SOURCE (
    SET DEPLOYMENT_SOURCE=%~dp0%. 
) 

IF NOT DEFINED DEPLOYMENT_TARGET (
    SET DEPLOYMENT_TARGET=%ARTIFACTS%\wwwroot 
) 

IF NOT DEFINED NEXT_MANIFEST_PATH (
    SET NEXT_MANIFEST_PATH=%ARTIFACTS%\manifest 

    IF NOT DEFINED PREVIOUS_MANIFEST_PATH (
    SET PREVIOUS_MANIFEST_PATH=%ARTIFACTS%\manifest 
) 
) 

IF NOT DEFINED KUDU_SYNC_CMD (
    :: Install kudu sync 
    echo Installing Kudu Sync 
    call npm install kudusync -g --silent 
    IF !ERRORLEVEL! NEQ 0 goto error 

    :: Locally just running "kuduSync" would also work 
    SET KUDU_SYNC_CMD=%appdata%\npm\kuduSync.cmd 
) 
goto Deployment 

:: Utility Functions 
:: ----------------- 

:SelectNodeVersion 

IF DEFINED KUDU_SELECT_NODE_VERSION_CMD (
    :: The following are done only on Windows Azure Websites environment 
    call %KUDU_SELECT_NODE_VERSION_CMD% "%DEPLOYMENT_SOURCE%" "%DEPLOYMENT_TARGET%" "%DEPLOYMENT_TEMP%" 
    IF !ERRORLEVEL! NEQ 0 goto error 

    IF EXIST "%DEPLOYMENT_TEMP%\__nodeVersion.tmp" (
    SET /p NODE_EXE=<"%DEPLOYMENT_TEMP%\__nodeVersion.tmp" 
    IF !ERRORLEVEL! NEQ 0 goto error 
) 

    IF EXIST "%DEPLOYMENT_TEMP%\__npmVersion.tmp" (
    SET /p NPM_JS_PATH=<"%DEPLOYMENT_TEMP%\__npmVersion.tmp" 
    IF !ERRORLEVEL! NEQ 0 goto error 
) 

    IF NOT DEFINED NODE_EXE (
    SET NODE_EXE=node 
) 

    SET NPM_CMD="!NODE_EXE!" "!NPM_JS_PATH!" 
) ELSE (
    SET NPM_CMD=npm 
    SET NODE_EXE=node 
) 

goto :EOF 

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
:: Deployment 
:: ---------- 

:Deployment 
echo Handling node.js deployment. 

:: 1. KuduSync 
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
    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" 
    IF !ERRORLEVEL! NEQ 0 goto error 
) 

:: 2. Select node version 
call :SelectNodeVersion 

:: 3. Install npm packages 
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
    pushd "%DEPLOYMENT_TARGET%" 
    call :ExecuteCmd !NPM_CMD! install ::--production 
    IF !ERRORLEVEL! NEQ 0 goto error 
    popd 
) 

echo Handling Angular build 
    ::4. Build ng app 
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
     pushd "%DEPLOYMENT_TARGET%" 
     call :ExecuteCmd "!NODE_EXE!" ./node_modules/@angular/cli/bin/ng build --prod --env=prod --aot 
     :: the next line is optional to fix 404 error see section #8 
     call :ExecuteCmd cp "%DEPLOYMENT_TARGET%"/web.config "%DEPLOYMENT_TARGET%"/dist/ 
     IF !ERRORLEVEL! NEQ 0 goto error 
     popd 
    ) 

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
goto end 

:: Execute command routine that will echo out when error 
:ExecuteCmd 
setlocal 
set _CMD_=%* 
call %_CMD_% 
if "%ERRORLEVEL%" NEQ "0" echo Failed exitCode=%ERRORLEVEL%, command=%_CMD_% 
exit /b %ERRORLEVEL% 

:error 
endlocal 
echo An error has occurred during web site deployment. 
call :exitSetErrorLevel 
call :exitFromFunction 2>nul 

:exitSetErrorLevel 
exit /b 1 

:exitFromFunction 
() 

:end 
endlocal 
echo Finished successfully. 

回答

0

好了,我發現這個問題:)在一個錯字deploy.cmd文件。更改:

:: 3. Install npm packages 
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
    pushd "%DEPLOYMENT_TARGET%" 
    call :ExecuteCmd !NPM_CMD! install ::--production 
    IF !ERRORLEVEL! NEQ 0 goto error 
    popd 
) 

到:

:: 3. Install npm packages 
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
    pushd "%DEPLOYMENT_TARGET%" 
    call :ExecuteCmd !NPM_CMD! install 
    IF !ERRORLEVEL! NEQ 0 goto error 
    popd 
) 

,一切工作就像一個魅力:d

相關問題