porta microsoft management azure azure-web-sites kudu

microsoft - porta azure



Implementar en Azure Web App desde varios repositorios (1)

De acuerdo con su descripción, puede crear su propio archivo .deployment y deploy.cmd para clonar primero las bibliotecas comunes segunda y tercera de los repositorios github en la carpeta de la aplicación web y luego usar el comando msbuild para compilarlo.

Aviso: No se pudo clonar el segundo y tercer repositorio de github en el directorio de artefactos. Debido a que tienes 3 repositorios github separados, cada repositorio tiene su propio archivo .git. No podríamos combinar estos tres. Así que sugiero que primero puedas clonar el segundo y tercer repositorio en una nueva carpeta y usar msbuild para compilarlo.

Más detalles, puede consultar los siguientes pasos:

En primer lugar, sugiero que pueda descargar el script de despliegue desde la consola de KUDU.

Aviso: después de que ya se haya desplegado desde el git, este archivo podría descargarse. Utilizamos este archivo como ejemplo para agregar códigos. Si no tiene, podría seguir mi deployment.cmd. Recuerde cambiar el nombre del proyecto.

Como a continuación:

Abre Kudu.

Descargue la secuencia de comandos de implementación.

Luego podría cambiar para encontrar que contiene el archivo .deployment y deploy.cmd.

Agregue los códigos siguientes al archivo deploy.cmd y agregue estos dos archivos en su carpeta git para enviarlos.

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%"

Este código se usa para construir su biblioteca común a la espera de la carpeta temporal para copiar.

Después de que se publique el sitio web principal, copiará la tempfolder al wwwrot.

El archivo deploy.cmd total.

Aviso: Este ejemplo solo crea dos repositorios. Si desea construir y publicar 3 repositorios, solo necesita agregar los códigos para clonar nuevamente.

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.

Resultado:

Buscando una forma de implementar en una aplicación web azul desde 3 repositorios github separados. Uno de los repositorios es el sitio web principal, los otros dos son bibliotecas comunes utilizadas por otros proyectos. Queremos que la implementación descienda de los tres repositorios a un directorio de artefactos, ejecute msbuild y copie los artefactos a wwwroot.

Supongo que necesitaré un archivo de despliegue personalizado junto con un archivo por lotes kudu. Pero no puedo encontrar ejemplos sobre cómo desplegar desde múltiples repositorios de github.

editar: ortografía