Автоматизируйте несколько сборок / выпусков в Azure DevOps

#azure-devops #azure-pipelines

#azure-devops #azure-конвейеры

Вопрос:

У нас есть десятки репозиториев кода в Azure DevOps, и мы работаем над основной стратегией выпуска.

У нас есть ветка стабильной разработки под названием develop , где код был протестирован и прошел экспертную оценку, а функции одобрены QA. Все наши хранилища сервисов имеют схожую структуру.

Мы хотим «нажать кнопку» и перейти от develop всех наших репозиториев к ветке-кандидату на выпуск, которую QA может регрессионно протестировать как целостную систему … по сути, «снимок» того, что мы ожидаем, готов к выпуску. Затем мы собирали на основе этой базы кода, выпускали в нашу среду контроля качества соответствующие сборки и, когда они были сертифицированы, развертывали в рабочей среде, затем тестировали smoke и объединяли ветку release candidate с master , затем master обратно с develop .

Не похоже, что существует простой способ управлять несколькими сборками или выпусками в Azure DevOps. Bamboo от Atlassian поддерживал эту концепцию «мета-сборок», но я не вижу способа сделать это в Azure DevOps. Кажется, я даже не могу создать сборку, которая неявно не связана с одним репозиторием.

Как я могу автоматизировать это и заставить этот рабочий процесс работать в Azure DevOps?

Комментарии:

1. да, я не думаю, что вы можете связать сборку с несколькими репозиториями, вы можете использовать rest api для создания ветвей в репозиториях. это может сработать для вас. но я понятия не имею, как вы могли бы проверить, все сборки qa prod успешны, и принять решение по этому поводу. возможно, также с помощью rest api

2. Я не тестировал это, мне интересно, можете ли вы использовать конвейер выпуска с репозиториями в качестве артефакта (ов), а затем использовать этапы выпуска для сборки / развертывания / тестирования. Возможно, это единственное место в стиле push button, которое вы ищете, но «публикация» артефактов сборки из конвейеров выпуска запрещена, поэтому вам нужно выяснить, как это сделать без этого механизма.

Ответ №1:

Вы можете использовать задачу сборки из Marketplace, которая ставит в очередь новую сборку: первые две найденные — это триггерная задача сборки и цепочка сборки. Вы определили всеобъемлющую сборку, которая помещает отдельные сборки в очередь и выполняет любую дополнительную работу.

Комментарии:

1. К сожалению, это самый близкий к моему идеалу ответ, который, кажется, существует. Однако в какой-то момент мы, вероятно, наймем консультанта для автоматизации этого с помощью RESTful API.