Я немного запутался в том, как настроить этот рабочий процесс с помощью запросов на вытягивание.
У меня есть существующий многоступенчатый конвейер сборки YAML, который в итоге выполняет следующие действия:
- Запускает сборку из любой ветки
- Запускает задание развертывания в Среду разработки / Ресурс, если исходной ветвью является feature / * или release / * и сборка завершается успешно
- Запускается задание развертывания в среду / ресурс UAT, если исходная ветка - release / *
- Запускает задание развертывания в Live / Production Environment / Resource, если исходная ветвь является master
Итак, с обратной стороны CI этот рабочий процесс, кажется, работает нормально, правильные этапы выполняются в зависимости от ветки и т. Д. c.
Затем я решил, что политики ветвления и запросы на вытягивание могут быть лучшим вариантом для кода качество, вместо того, чтобы напрямую связывать какую-либо из основных ветвей, поэтому я начал переделывать YAML для учета - в основном, удаляя триггер на
trigger: none
* 102 1 * Теперь это работает правильно в соответствии с политикой ветвления, сборка запускается только тогда, когда открывается запрос на перенос для разработки или мастера.
Однако именно тогда я немного смущен тем, как это должно работать, и как я думаю, это работает ....
Во-первых, невозможно ли запустить многоступенчатый YAML с обратной стороны pull-запросов (используя Azure Repos)? В голове все, что я хочу сделать, это ввести политики запросов на вытягивание и ветвления, но сохранить многоступенчатое развертывание в средах как есть. Однако сейчас все этапы задания по развертыванию пропускаются, но это может быть связано с моими условиями в YAML, а именно:
- stage: 'Dev'
displayName: 'Development Deployment'
dependsOn: 'Build'
condition: |
and
(
succeeded()
eq(variables['Build.Reason'], 'PullRequest'),
ne(variables['System.PullRequest.PullRequestId'], 'Null'),
or
(
startsWith(variables['Build.SourceBranch'], 'refs/heads/feature/'),
startsWith(variables['Build.SourceBranch'], 'refs/heads/release/')
)
)
jobs:
- deployment: Deploy
pool:
name: 'Development Server Agent Pool'
variables:
Parameters.WebsitePhysicalPath: '%SystemDrive%\inetpub\wwwroot\App'
Parameters.VirtualPathForApplication: ''
Parameters.VirtualApplication: ''
environment: 'Development.Resource-Name'
.....
Что-то мне не хватает? Или мне нужно удалить многоэтапные развертывания из YAML и вернуться к использованию Release Pipelines для запросов на вытягивание (возможно, с воротами утверждения ??)
Заранее спасибо!