Azure开发了多阶段YAML和手动交互功能

时间:2019-09-11 16:05:58

标签: azure azure-devops azure-pipelines multistage-pipeline

我只是在读Steal that API Key with a Man in the Middle Attack,听起来很棒。

据我了解,这些阶段是相继进行的,现在假设我有以下阶段

stages:
   stage: Deploy to acc
      ...
   stage: Deploy to prd

我不想在部署到acc之后立即运行生产部署。首先,我想看看acc,当我批准它时,它应该部署到prd。在多阶段管道中是否有一种方法可以告诉您不要自动运行阶段?并例如手动运行一个阶段?还是应该为生产而创建新的管道?

3 个答案:

答案 0 :(得分:2)

要防止阶段自动运行,可以为每个阶段添加条件。检查here了解更多信息

stages:
- stage: A
  #stage B runs if A fails
- stage: B
  condition: failed()
 #stage C runs if B succeeds
- stage: C
  dependsOn:
  - A
  - B
  condition: succeeded('B')

如果要手动运行舞台。您可以为checks创建environments。 请按照以下步骤创建舞台目标环境。

导航到“管道”页面。然后选择环境,然后单击创建环境。 有关更多信息,请检查here

然后按照说明here为每个环境创建检查。这样,在您的管道阶段开始部署到已定义checks的环境之前。它将等待批准。

建议使用发布管道来部署您的应用程序。您可以在项目的发布页面中创建发布管道。在发布管道中,创建批准以手动干预部署任务非常简单。 检查here了解详细步骤

答案 1 :(得分:0)

如果您想手动运行舞台,我相信有更好的方法。我在这里发布了一个类似问题的答案:

https://stackoverflow.com/a/61400536/275559

答案 2 :(得分:0)

每个阶段结束时的仅供参考的手动验证任务也无法完成此任务:

现在可用:https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/manual-validation?view=azure-devops&tabs=yaml

- task: ManualValidation@0
  timeoutInMinutes: 1440 # task times out in 1 day
  inputs:
    notifyUsers: |
      test@test.com
      example@example.com
    instructions: 'Please validate the build configuration and resume'
    onTimeout: 'resume'