如何暂停 Azure Devops 阶段

How to pause an Azure Devops stage

我们有一个多阶段的 devops 构建。最后将发布到章鱼部署并触发发布。为此,我们没有在 Devops 中使用版本。

我们不想在 octopus 完成之前将 devops 构建标记为完成,但也不想阻止代理轮询 octopus。

您可以在 devops 中设置一个需要手动干预的阶段,这具有预期的效果,但它需要手动工作。这个似乎没有 API。

有没有办法做到这一点,而不会阻止许多代理只轮询章鱼部署?

是的。您正在寻找 Manual Validation task

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'

我想适合您的是 Azure Devops 的 Approvals and Check 功能。

它可以设置为调用 Rest Api 并评估请求结果以继续部署作业。

当然,您必须在管道中做一些更改,添加一个环境来充当管道末端的虚拟门以及诸如此类的事情,但根据我的经验,这是值得的。