如何在 Azure Pipelines yaml 中添加手动干预步骤

cfb*_*fbd 18 azure-devops azure-pipelines

如何将手动干预步骤添加到多阶段 Azure Devops YAML 管道中?

在詹金斯你可以做一些事情:

stage ('approve-prod') {
    steps {
        input "Approve deployment to production?"
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找 Azure Devops YAML 中的等效项。

注意:这是针对新发布的多阶段 Azure Devops 管道,而不是旧式发布管道。相关公告在这里https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/

小智 10

微软现在提供了一个全新的官方手动验证任务,允许将手动干预添加到 YAML 管道中。

如何使用此任务的快速示例如下:

  jobs:  
  - job: waitForValidation
    displayName: Wait for external validation  
    pool: server    
    timeoutInMinutes: 4320 # job times out in 3 days
    steps:   
    - 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'
Run Code Online (Sandbox Code Playgroud)

需要注意的一些关键限制:

  • 此任务仅在 YAML 管道中受支持
  • 只能在 YAML 管道的无代理作业中使用。

  • 你的**另一个选择**到底是什么?请解释代码,以便其他人可以从您的答案中受益更多,而不是只编码而无需解释。 (2认同)

Ale*_*ing 8

这似乎尚不可用,但有一个 GitHub 问题跟踪此:https : //github.com/MicrosoftDocs/vsts-docs/issues/4241

从问题:

所以我从产品团队那里听到的是,这个“每阶段批准”政策尚不可用,但在他们的待办事项中。

还有一个路线图工作项跟踪它:https : //dev.azure.com/mseng/AzureDevOpsRoadmap/_workitems/edit/1510336/


小智 6

Azure DevOps/Pipelines 现在有一个名为 Environments 的功能,它支持审批​​。 https://docs.microsoft.com/en-us/azure/devops/pipelines/process/environments?view=azure-devops#approvals

我们正在使用它们作为解决方法。基本上,我们在 Azure DevOps 中指定了两个环境 ApprovalNotRequired 和 ApprovalRequired。对于后者,我们指定了谁可以批准部署。然后在管道中,我们像这样引用环境。

- stage: 'Approval not required'
  jobs:
  - deployment: 'MyDeployment'
    displayName: MyDeployment
    environment: 'ApprovalNotRequired'
    strategy:
      runOnce:
        deploy:
          # whatever

- stage: 'Approval required'
  jobs:
  - deployment: 'MyDeployment2'
    displayName: MyDeployment2
    environment: 'ApprovalRequired'
    strategy:
      runOnce:
        deploy:
          # whatever
Run Code Online (Sandbox Code Playgroud)

第一阶段将不受干扰地运行,第二阶段将暂停,直到获得批准。

  • 自 20220804 起,这是使用环境定义批准和检查的当前方法...转到 azure DevOps -> 项目 -> 管道 -> 环境 -> 创建一个新环境(选择 None 而不是 aks 或 vm ) -> 然后单击添加资源右侧的汉堡菜单 -> 批准和检查 (3认同)