На моей работе мы недавно переоборудовали некоторые конвейеры в «все-в-одном». Поэтому, когда происходит слияние с основной средой, конвейер состоит из нескольких этапов сборки --> развертывания в средах более низкого уровня --> развертывания в рабочей среде. Для производственного развертывания требуется утверждение вручную. В результате сборки часто остаются на этом этапе, поскольку мы развертываем их только с определенной частотой.
В рамках нашего триггера в файле YAML у нас есть batch: true. Однако я считаю, что это приводит к тому, что все новые слияния НЕ автоматически запускают конвейер, потому что у нас обычно есть предыдущие запуски, которые находятся на стадиях производственного развертывания и ждут одобрения, поэтому технически они еще не «завершены».
На самом деле нам нужно выполнять пакетную обработку только на этапе сборки, а не на конвейере целиком. Я нашел эту ветку за 2019 год, подробно описывающую эту же проблему. В ответе представителя Microsoft говорится: «У нас есть поэтапная пакетная обработка в очереди, и мы планируем поработать над ней в ближайшие несколько месяцев» — с момента публикации этой публикации прошло около 5 лет. Я ничего не нашел о поэтапной пакетной обработке... кто-нибудь знает, возможно ли это?





Согласно примечанию в документе Пакетная обработка CI,
Если в конвейере имеется несколько заданий и этапов, то первый запуск все равно должен достичь конечного состояния, завершив или пропустив все свои задания и этапы, прежде чем сможет начаться второй запуск. По этой причине необходимо проявлять осторожность при использовании этой функции в конвейере с несколькими этапами или утверждениями. Если в таких случаях вы хотите выполнять пакетную сборку, рекомендуется разделить процесс CI/CD на два конвейера — один для сборки (с пакетной обработкой) и один для развертывания.
Похоже, функция поэтапного пакетирования еще не реализована.
В этом случае вы можете разделить процесс CI/CD на два конвейера — один для сборки (с пакетной обработкой) и один для развертывания. Затем вы можете использовать триггеры ресурсов конвейера в конвейере развертывания, чтобы убедиться, что конвейер развертывания запускается после завершения конвейера сборки.
Вы также можете запросить эту функцию для Azure DevOps здесь и проголосовать за нее. Инженеры обычно отдают приоритет функциям, которые срочны или имеют больше голосов.