【问题标题】:Azure devops multi-stage YAML combined with manual interactionAzure devops 多阶段 YAML 结合手动交互
【发布时间】:2020-01-13 12:32:34
【问题描述】:

我正在阅读有关 multi-stage pipelines 的消息,这听起来很棒。

据我了解,各个阶段是一个接一个的,现在假设我有以下阶段

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

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

【问题讨论】:

  • 以下答案对您有帮助吗?你试过了吗?

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


【解决方案1】:

为防止阶段自动运行,您可以为每个阶段添加条件。查看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')

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

导航到管道页面。然后选择环境并单击创建环境。 更多信息请查看here

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

建议使用发布管道部署您的应用。您可以在项目的 Releases 页面中创建发布管道。创建 approvalsgates 以手动干预您的部署任务在发布管道中非常简单。 详细步骤请查看here

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      现在可用: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'
      

      【讨论】:

      • 根据我们的经验澄清潜在问题:手动验证任务适用于 YAML 管道。手动 干预 任务适用于经典管道。
      猜你喜欢
      • 2020-10-22
      • 2020-10-31
      • 2021-10-14
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 2023-01-05
      • 1970-01-01
      相关资源
      最近更新 更多