【问题标题】:Azure DevOps Cancel deployment of stage when deploying another stageAzure DevOps 在部署另一个阶段时取消部署阶段
【发布时间】:2020-04-07 03:28:49
【问题描述】:

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

我要完成的是如果上午 9:00 部署触发,则取消下午 2:00 部署,如果下午 2:00 部署触发,则取消上午 9:00 部署,因为我们没有'真的不想部署两次相同的代码,甚至第二天部署前一天的代码。

有谁知道在 Azure DevOps 中是否有办法做到这一点?

我已经做了很多搜索扩展等,看看我是否能找到任何东西,但到目前为止还没有成功。任何帮助将不胜感激。

【问题讨论】:

  • 我不明白你为什么要为此设置两个阶段。有一个阶段和两个预定时间。
  • 很遗憾,您不能安排 2 次预定时间 :-(
  • 你安排的是发布,而不是舞台。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    假设您在上午 9:00 触发发布。那么你可以采取以下步骤来实现它:

    1.在变量选项卡中添加一个名为flag的变量并设置为true

    2.将 PowerShell 任务添加到您的测试阶段,从上午 9:00 阶段开始到下午 2:00 阶段开始

    (1) 在测试阶段结束时添加一个 powershell 任务以将标志设置为 true。

    (2) 在Starting 9:00 AM Stage顶部添加一个powershell任务,检查变量flag是否为真,如果flag为假则任务失败,例如下面的脚本。

    $flag = “$(flag)”

    if(-Not $flag)

    {

    exit 1
    

    }

    如果此阶段部署成功,则在上午 9:00 阶段结束时添加一个 powershell 任务以将标志设置为 false。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 2020-01-07
    • 2020-11-23
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多