Azure Devops - как предотвратить одновременное выполнение нескольких конвейеров?

У меня два разных конвейера с 3 активированными агентами. Моя проблема в том, что один из моих конвейеров выходит из строя, если одновременно выполняется несколько сборок (потому что tets конфликтуют), поэтому я хочу поставить в очередь запрос на сборку, если для этого конкретного конвейера работает еще один.

Первое, что я пробовал, это использовать возможности и требования для идентификации одного агента, поэтому для этого конвейера всегда доступен только один агент, но он не работает с агентами, размещенными на сервере Microsoft, и это то, что у меня есть. Затем я подумал, что, возможно, создав 2 пула агентов, я могу указать в своей конфигурации конвейера, чтобы использовать один из них, но еще раз я не могу создать несколько пулов для агентов, размещенных в Microsoft.

Как я могу предотвратить одновременное выполнение нескольких сборок?

Спасибо!

2 ответа

Решение

Наконец, я решил проблему перехода от сборки к сборке + выпуск.

Решение @Fairoz не работает для меня, потому что одновременное выполнение нескольких сборок из разных веток. Мне нужно заблокировать конвейер до тех пор, пока не перестанут выполняться сборки. В Azure Devops это можно сделать с помощью возможностей + требований, но он не работает с агентами, размещенными на сервере Microsoft, поэтому я переместил всю логику тестирования в выпуск, который развертывается в CI, и оставил сборку, которая просто выполняет Артефакт.

Итак, рабочий процесс: PR в Github > Trigger Build > Создать артефакт с моей веткой> Trigger release > Release code to CI and run the tests.

Azure Devops позволяет контролировать количество параллельных запусков одного этапа, поэтому я ограничил число параллельных задач до 1, и все.

Вы можете просто включить опцию "Пакетные изменения во время сборки", чтобы выполнять по одному конвейеру за раз.

Здесь есть аналогичный вопрос: "Сборка после успешного выполнения предыдущего" в Azure Devops

Другие вопросы по тегам