Реализация шлюзов в конвейерах Azure YAML

Я видел и использовал конвейеры выпуска Azure.

Мы стремимся использовать конвейеры на основе YAML, поскольку в Git легко управлять версиями. Есть ли способ разделить конвейеры на этапы, и у каждого этапа есть утверждающий и ручной запуск следующего этапа.


person forvaidya    schedule 07.05.2020    source источник
comment
Привет @forvaidya Поскольку ниже вам поможет ответ Кшиштофа Мадея. Вы можете принять его, если считаете, что он подходит как ответ   -  person Levi Lu-MSFT    schedule 21.05.2020
comment
@forvaidya, можете ли вы пометить мой ответ как ответ?   -  person Krzysztof Madej    schedule 04.11.2020


Ответы (1)


В YAML это работает по-другому. Чтобы использовать утверждения и проверки, вам необходимо сначала определить среду. Когда у вас есть среда, вы можете определить approvals and checks.

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

Важная вещь

Утверждения и другие проверки не определены в файле yaml. Пользователи, изменяющие файл yaml конвейера, не могут изменять проверки, выполненные перед запуском этапа. Администраторы ресурсов управляют проверками с помощью веб-интерфейса Azure Pipelines.

Затем в задании по развертыванию вы можете выбрать среду:

jobs:
- deployment: string   # name of the deployment job, A-Z, a-z, 0-9, and underscore
  displayName: string  # friendly name to display in the UI
  pool:                # see pool schema
    name: string
    demands: string | [ string ]
  dependsOn: string 
  condition: string 
  continueOnError: boolean                # 'true' if future jobs should run even if this job fails; defaults to 'false'
  container: containerReference # container to run this job inside
  services: { string: string | container } # container resources to run as a service container
  timeoutInMinutes: nonEmptyString        # how long to run the job before automatically cancelling
  cancelTimeoutInMinutes: nonEmptyString  # how much time to give 'run always even if cancelled tasks' before killing them
  variables: { string: string } | [ variable | variableReference ]  
  environment: string  # target environment name and optionally a resource-name to record the deployment history; format: <environment-name>.<resource-name>
  strategy: [ deployment strategy ] # see deployment strategy schema

Вы также можете проверить эту тему на github

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

И ворот нет (по крайней мере, пока). Таким образом, вы не можете защитить определенные этапы утверждения, но вы можете защитить некоторые ресурсы (например, среды), используемые в заданиях.

person Krzysztof Madej    schedule 07.05.2020
comment
Спасибо, это помогает. Это означает, что администрирование файлов Environment и YAML - это разные механизмы ответственности и безопасности. Хотя у меня нет прав на изменение среды в нашей корпоративной среде, я попробую это на пробной учетной записи. - person forvaidya; 07.05.2020