我们有一个 Azure DevOps YAML 多阶段管道,在该管道中构建代码,然后将其部署到一系列环境中。部署是使用 Terraform 实现的。
IE
Builds -> Test -> Deploy to DEV -> Deploy to TEST - - ->
此管道用于 CI/CD 构建和 PR 构建。对于 PR 构建,部署阶段的唯一部分是terraform plan
在 TF 脚本上运行。
对于 PR,管道配置为在将更改推送到该 PR 时取消正在进行的构建。
我们看到的问题是,当更改被推送到 PR 并且正在进行的构建被取消时,有时会在terraform plan
步骤期间发生取消。这有时意味着terraform plan
不会释放所占用的 blob 租约。从那时起,需要手动干预(中断 blob 租约)才能使部署阶段成功运行。
我相信我们可以关闭如果推送更改会导致正在进行的 PR 构建被取消的设置。
但我想知道是否有一种方法可以将管道步骤标记为关键步骤 - 即如果取消构建,它应该运行到完成?
还有其他取消管道构建的方法,并且必须有其他不应中途取消的任务/步骤。这样的critical-task
设置也将涵盖这些情况。