Azure DevOps在部署另一个阶段时取消阶段的部署

时间:2019-12-13 16:41:15

标签: azure-devops azure-pipelines-release-pipeline release-management

我们目前通过以下方式拥有Azure DevOps版本设置:

Release Setup

我要完成的工作是,如果9:00 AM部署触发,则取消2:00 PM部署;如果2:00 PM部署触发,则取消9:00 AM部署,因为我们不这样做。确实希望两次部署相同的代码,或者甚至第二天也要部署前一天的代码。

有人知道在Azure DevOps中是否可以做到这一点吗?

我已经做了大量的搜索扩展等工作,以查看是否可以找到任何东西,但是到目前为止还没有成功。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

假设您在9:00 AM触发发布。然后,您可以按照以下步骤实施它:

1。添加一个名为flag的变量,并在“变量”选项卡中将其设置为true

enter image description here

2。从9:00 AM阶段开始和2:00 PM阶段开始将PowerShell任务添加到测试阶段

(1)在测试阶段的末尾添加一个powershell任务,以将标志设置为true。

(2)在开始9:00 AM阶段的顶部添加一个powershell任务,以检查变量标志是否为true,如果标志为false,则使此任务失败,例如以下脚本。

$ flag =“ $(标志)”

if(-不是$ flag)

{

exit 1

}

如果成功部署此阶段,请在开始9:00 AM阶段结束时添加powershell任务,以将标志设置为false。

在2:00 PM阶段重复上述步骤。

答案 1 :(得分:0)

此外,您可以尝试将Release Gates与Rest Api或Azure函数一起使用。您可以在此处找到示例:Azure DevOps release gates with Azure Functions, PowerShell and VS Code