对于Terraform部署,我们使用一个Azure DevOps管道,该管道具有3个阶段:
在申请阶段,我们使用具有手动批准(检查)环境的部署作业。如果计划阶段没有任何变化,我们希望“跳过”申请和测试阶段。因此,我们尝试在应用阶段使用以下yaml配置:
temp = a[j]; if (PROCINFO["temp"] == "array")
根据此issue on the MS Developer Community,在批准之前不会检查批准阶段的条件,因此该方法不起作用。
我的问题是:您知道实现此目的的其他方法吗?
答案 0 :(得分:1)
一个阶段可以包含许多作业,并且每个作业可以消耗多个资源。在开始执行阶段之前,必须满足对该阶段使用的所有资源的所有检查。 Azure管道在每个阶段之前暂停管道的执行,并等待所有挂起的检查完成。这就是为什么这种情况在您的情况下不起作用的原因。在此处查看更多信息:
路线图上已有类似的想法,您可以跟踪以下链接:
当前,您可以考虑开始a manual run并跳过管道中的几个阶段:
答案 1 :(得分:0)
- 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'
onTimeout 也可以设置为 reject
。如果插入,则阶段/作业将处于挂起状态,直到有人进入并查看说明将在屏幕上的位置。将非常接近为手动干预任务提供的课程版本。此任务仅在 YAML 管道中可用。