Я новичок в Azure, и я был уверен, что настроить конвейер и развернуть мое решение в Azure было просто, но я застрял на 2 дня и не нашелДата статьи, которая объясняет полный CI / CD.
Вот мое решение (на основе ABP Boilerplate):
- solution folder
- aspnet-core solution folder (API .NET Core 2.2)
- angular (frontend part in Angular 8)
У меня есть учетная запись Azure, и я создал две службы приложений:
Для обеих настроек используются значения по умолчанию:
- WEBSITE_RUN_FROM_PACKAGE '1'
- WEBSITE_ENABLE_SYNC_UPDATE_SITE 'true'
В Azure DevOps все зеленое...
2 Трубопроводы:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
cd angular
npm install -g @angular/cli
npm install
ng build --prod
displayName: 'npm install and build'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: 'angular/dist'
TargetPath: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'UiApp'
publishLocation: 'Container''
# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
TargetPath: '$(Build.ArtifactStagingDirectory)'
Для релизной части:
Создана подпапка UIApp в wwwroot, но я не понимаю, почему
steps:
- task: AzureWebApp@1
displayName: 'Azure Web App Deploy: XXXXX'
inputs:
azureSubscription: 'XXXXXXXX'
appType: webApp
appName: 'XXXXX'
package: '_XXX - Angular'
enabled: false
Я пробовал развертывание Azure Web App и Azure App Service.
Я пытался использовать развертывание Zip / Run из пакета/ развернуть Web ... безуспешно.
В API я вижу, что он создан:
В / data / sitePackages / zip-файл с датой и временем
В / site / wwwroot / также zip-файл, но с другим названием (wwwroot только для чтения)
Yaml:
steps:
- task: AzureWebApp@1
displayName: 'Azure Web App Deploy: XXXXX'
inputs:
azureSubscription: 'XXXXXXXXXXX'
appType: webApp
appName: 'XXXXXX'
package: '_XXXXX - API/drop'
deploymentMethod: runFromPackage
enabled: false
Я не понимаю, что мне не хватает, это должно быть легкоиспользовать полный стек Azure ... Я должен пропустить детали где-то (или, может быть, я пропускаю большую картинку и тренинг по Yaml)
Я бы хотел предотвратить создание подпапки UiApp в wwwroot для внешнего интерфейса.
Бэкэнд вообще не работает с пакетом, и я не знаю, как исправить или отладить проблему. Кстати мне не нужно запускать из пакета. Я бы предпочел "классический" способ с IIS