2017-06-22 12 views
1

別々の3つのgithubリポジトリからAzure Webアプリケーションにデプロイする方法を探しています。リポジトリの1つはメインのウェブサイトであり、他の2つは他のプロジェクトで使用される共通ライブラリです。デプロイメントを3つのリポジトリすべてからアーティファクトディレクトリにプルダウンし、msbuildを実行してアーティファクトをwwwrootにコピーします。複数のリポジトリからAzure Web Appにデプロイ

私は、カスタムの.deploymentファイルとkuduバッチファイルが必要であると仮定しています。しかし、私はどのように複数のgithubリポジトリからプルダウンするかについての例を見つけることができません。

編集:スペル

答えて

2

あなたの説明によると、あなたが最初に構築するためにMSBuildのコマンドを使用し、Webアプリケーションフォルダに第二と第三のGitHubリポジトリの共通ライブラリのクローンを作成するために、独自の.deploymentとdeploy.cmdファイルを作成することができますそれ。

注意:2番目と3番目のgithubリポジトリをartifactディレクトリに複製できませんでした。 3つの別々のgithubリポジトリがあるため、各リポジトリには独自の.gitファイルがあります。この3つを組み合わせることはできませんでした。だから私はあなたが最初に新しいフォルダに2番目と3番目のリポジトリをクローンし、それを構築するためにmsbuildを使用することをお勧めします。

詳細は、あなたは以下の手順を参照できます。

まず、私はあなたがクーズーコンソールから展開スクリプトをダウンロードすることができ示唆しています。

注意:gitから既にデプロイした後、このファイルをダウンロードできます。このファイルを例として使用してコードを追加します。あなたが持っていなければ、私のdeployment.cmdに従うことができます。プロジェクト名の変更を忘れないでください。

以下:

Open Kudu。

enter image description here

デプロイスクリプトをダウンロードしてください。

enter image description here

次に、あなたはそれが.deploymentとdeploy.cmdファイルが含まれて見つける変更することができます。

以下のコードをdeploy.cmdファイルに追加し、この2つのファイルをgitフォルダに追加してプッシュします。

git clone https://github.com/{yourgithubname}/BrandoGitTestLibrary.git D:\home\site\{foldername} 

    echo second project 
    :: 1. Start restore second project 
    dotnet restore "D:\home\site\{foldername}\BrandoGitTestLibrary\BrandoGitTestLibrary.csproj" 

    :: 2. Build to DEPLOYMENT_TEMP wait copy 
    dotnet build "D:\home\site\{foldername}\BrandoGitTestLibrary\BrandoGitTestLibrary.csproj" --output "%DEPLOYMENT_TEMP%" 

このコードは、コピーを待つための共通ライブラリを作成するために使用します。

メインのウェブサイトが公開されると、tempフォルダーがwwwrotにコピーされます。

合計deploy.cmdファイル。

注意:この例では、2つのリポジトリを作成しています。 3つのリポジトリを構築して公開する場合は、コードを追加してもう一度クローンを作成するだけです。

git clone https://github.com/BrandoTest/BrandoGitTestLibrary.git D:\home\site\sencondproject 

    echo second project 
    :: 3. Start restore second project 
    dotnet restore "D:\home\site\sencondproject\BrandoGitTestLibrary\BrandoGitTestLibrary.csproj" 

    :: 4. Build and publish 
    dotnet build "D:\home\site\sencondproject\BrandoGitTestLibrary\BrandoGitTestLibrary.csproj" --output "%DEPLOYMENT_TEMP%" 




@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 
) 
IF NOT DEFINED DEPLOYMENT_TEMP (
    SET DEPLOYMENT_TEMP=%temp%\___deployTemp%random% 
    SET CLEAN_LOCAL_DEPLOYMENT_TEMP=true 
) 

IF DEFINED CLEAN_LOCAL_DEPLOYMENT_TEMP (
    IF EXIST "%DEPLOYMENT_TEMP%" rd /s /q "%DEPLOYMENT_TEMP%" 
    mkdir "%DEPLOYMENT_TEMP%" 
) 

IF DEFINED MSBUILD_PATH goto MsbuildPathDefined 
SET MSBUILD_PATH=%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe 
:MsbuildPathDefined 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
:: Deployment 
:: ---------- 

echo Handling ASP.NET Core Web Application deployment. 

:: 1. Restore nuget packages 
call :ExecuteCmd dotnet restore "%DEPLOYMENT_SOURCE%\TestForCore2.csproj" 
IF !ERRORLEVEL! NEQ 0 goto error 

:: 2. Build and publish 
call :ExecuteCmd dotnet publish "%DEPLOYMENT_SOURCE%\TestForCore2.csproj" --output "%DEPLOYMENT_TEMP%" --configuration Release 
IF !ERRORLEVEL! NEQ 0 goto error 

:: 5. KuduSync 
call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_TEMP%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd" 
IF !ERRORLEVEL! NEQ 0 goto error 

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
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. 

結果:

enter image description here

+0

はあなたにブランドをありがとう!これはまさに私が探していた方向でした。 – gjacquez

関連する問題