Что YAML эквивалентно конвейерам выпуска?

Aug 17 2020

Я изучал Azure DevOps и кое-что озадачил: похоже, Microsoft настоятельно рекомендует использовать конвейеры YAML вместо классических; честно, но им нужно заменить всю функциональность, которая была в классических конвейерах. Как мне заменить функциональность «конвейера выпуска» конвейерами YAML?

Так, например, с классическими конвейерами выпуска я мог бы настроить конвейер для развертывания в производственной среде с ручным запуском (см. «Вручную от пользователя»):

https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=azure-devops#pull-request-triggers

Что эквивалентно этому конвейеру YAML? Очевидно, мне не нужен триггер, который автоматически развертывается в производственной среде - я всегда хочу, чтобы это развертывание инициировалось строго вручную, - но в статье справки, похоже, нет альтернативы YAML.

Ответы

1 LanceLi-MSFT Aug 18 2020 at 03:42

Как комментирует Даниэль выше, конвейер Yaml поддерживает многоступенчатые конвейеры yaml для CD. Вы можете проверить Azure DevOps Pipelines - Multi-Stage Pipelines и YAML для непрерывной доставки для получения дополнительных сведений.

Для компакт-диска можно использовать как многоступенчатый конвейер Azure DevOps yaml, так и классический конвейер выпуска, однако они имеют некоторую разницу . И, насколько мне известно, ни одна функция в конвейере YAML не может быть эквивалентна manual triggerклассической версии.

На данный момент ручной триггер не поддерживается в конвейере YAML, см. Это обсуждение . Хорошая новость заключается в том, что команда продукта рассмотрела запрос функции, и новая функция находится в дорожной карте . (Возможно, в планах на III квартал 2020 г.)

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

Возможно, нам придется подождать некоторое время, прежде чем эта manual triggerфункция станет реальностью в конвейере Yaml. Надеюсь, новая функция удовлетворит ваши потребности.

AlexanderVolok Aug 18 2020 at 10:10

Microsoft говорит , что их команда внутренне использовать Release Flow разветвления стратегии: Release Flow: Как мы делаем ветвление на VSTS Team

Поток выпуска означает, что необходимо создать ветвь выпуска, чтобы запускать выпуск, что может выглядеть следующим образом:

релизы / productname-sprint02

Следовательно, создание такой ветки может действовать как ручной триггер.

В многоэтапном конвейере YAML этап производственного развертывания должен быть закодирован так, чтобы он запускался, когда выполнение конвейера является контекстом ветвления выпуска, что несложно сделать, используя condition:и выражение, содержащее проверку:

${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases')

ps Мой недавний блог на подобную тему: Azure DevOps - конвейеры YAML и стратегии ветвления