Azure Конвейер выпуска Devops - Новый выпуск ставится в очередь, когда выполняется предыдущий - PullRequest
0 голосов
/ 04 августа 2020

Наши конвейеры выпуска настроены в несколько этапов. Для каждого запроса на перенос, который объединяется с основным, автоматически создается новый выпуск. У нас есть DEV => TST => REL => PRD.

Теперь мы также используем эти этапы для выполнения автоматических тестов. Итак, после DEV есть этап для проведения базового c автоматического тестирования (AT). Таким образом, мы получаем DEV => AT => TST => REL => PRD. AT зависит от DEV, чтобы работать без сбоев.

Скриншот нашего конвейера выпуска

Наша проблема заключается в следующем. Когда Release X выполняет AT и тем временем объединяется запрос на перенос, что приводит к развертыванию в DEV для Release X + 1, это вызывает сбой AT для Release X. Есть ли способ заставить Release X + 1 ждать в очереди, пока AT не будет завершена для Release X?

Мы также можем решить эту проблему, избегая простоев на DEV во время развертывания, или изолировать тесты в среде, которая не зависит от автоматического развертывания et c. Но исходя из того, что у нас есть, и времени, которое у нас есть для улучшения этого, мы хотели бы знать, есть ли способ сделать экземпляры конвейера более осведомленными друг о друге ...

1 Ответ

0 голосов
/ 05 августа 2020

Но, исходя из того, что у нас есть, и времени, которое у нас есть для улучшения этого, мы хотели бы знать, есть ли способ сделать экземпляры конвейера более осведомленными друг о друге ...

Извините, но боюсь, что у нас пока нет такой готовой функции.

Вот одно обсуждение о похожих топах c, вы можете отслеживать его и оставлять комментарии, чтобы поделиться своим мнением. (Поскольку он предназначен для конвейера сборки, а не для выпуска, вы можете опубликовать запрос новой функции для конвейера выпуска)

enter image description here

And as a temporary workaround:

You can move the steps in your AT stage into DEV stage. Create agent job AT and move the content of AT stage into AT job in DEV stage, and make sure you disable the parallel stage-deployment in the Deployment queue settings under Pre-deployment conditions:

аналогичная проблема )

Для вызова azure DevOps rest api в Gates:

1. Создайте Generic service connection:

URL: https://vsrm.dev.azure.com/OrgName/ProjectName/_apis/release/releases/3?api-version=5.1

Оставьте имя пользователя и пароль пустыми.

2. Измените значение по умолчанию "AuthToken": "$(system.AccessToken)" на "Authorization": "Bearer $(System.AccessToken)".

введите описание изображения здесь

Тогда остальной api будет выполнен с токеном из текущего контекста.

...