Я пытаюсь создать файл определения yaml
для простого конвейера CI / CD в DevOps Azure.
Мой конвейер должен выглядеть следующим образом:
Можно ли определить весь рабочий процесс в одном файле определения с различными этапами и заданиями?
Как определить, какой проект (какой GITПодпуть вызвал сборку) изменился, чтобы продолжить рабочий процесс проекта A / B?
Первый рабочий процесс с проектом A кажется мне выполнимым.Я могу запустить команду sc
вместе с runsas
или psexec
, чтобы запустить / остановить службу и использовать задачу копирования файла.Но как я могу инициировать публикацию веб-приложения ASP.NET в локальный каталог (как я сделал бы с VS-> Publish-> Local Folder)?
После этого я думаю, что этоСамый простой способ использовать сценарии для замены содержимого, установить пакеты npm для минимизации и объединения файлов js / css и загрузить их на FTP-сервер.Или какие-нибудь лучшие / более простые идеи?
Если вы, ребята, можете поддержать меня, создав первоначальное определение yaml
только для рабочего процесса без подробностей задач, я был бы очень признателен.Возможно, у меня появится более четкое видение, если вы сможете ответить на мои вопросы выше.
На данный момент у меня есть очень простой файл начальной сборки:
# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4
trigger:
- master # for a productive deployment after manual approval
- develop # for a automatic test deployment
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@0
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
feedsToUse: 'select'
vstsFeed: 'tpcemedia'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'