【问题标题】:Azure Release Pipelines - Is it possible to prevent a manual trigger stage until another stage is completeAzure Release Pipelines - 是否可以阻止手动触发阶段,直到另一个阶段完成
【发布时间】:2019-07-01 09:36:25
【问题描述】:

在 Octopus Deploy 中有生命周期的概念。它们看起来像下面这样 -

  • 开发
    • 开发环境1
    • DevEnv2
  • 暂存
    • 暂存环境
  • 产品
    • ProdEnv

它允许您说“必须在部署到 Staging 之前完成来自 Dev 的环境”。

在 Azure Devops 中,如果您使用“After Stage”触发器,则可以实现此目的。然而,这使得部署到下一阶段是自动的。您可以设置第一阶段后或第二阶段前的批准来阻止这种情况,但如果这些被“拒绝”,那么它看起来像失败,但不一定如此 - 通常我们只是不想部署到这些环境。

另一种解决方法是在手动触发阶段的门中使用 REST API,如 this question 所示,但这感觉不对 - 它会抛出“部署图”,这可能看起来微不足道,但事实并非如此让外面的人进来看看到底发生了什么。它也不会阻止任何人随时尝试手动触发它。

有没有办法做到这一点?

【问题讨论】:

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


    【解决方案1】:

    恐怕目前没有更好的办法。即使您在 gate 中使用 rest api 的解决方法,如果您没有通过 gate,则生成的阶段状态与“rejected”相同。

    【讨论】:

    • 谢谢休。不知道以后有没有这方面的计划?我认为这是一项重要的功能,也是其他平台所拥有的。
    • 您可以通过此 url 提交建议票以推荐新功能:developercommunity.visualstudio.com/content/idea/… 提出建议后,您可以投票并添加您的 cmets 以获得此反馈。当有足够多的社区对此反馈进行投票并添加 cmets 时,产品团队成员将认真对待此反馈
    【解决方案2】:

    我面临着完全相同的问题,到目前为止,我发现的唯一方法是将人工过滤器添加到您要手动部署的阶段,使用 * 排除所有分支。

    在下面的示例中,将自动从 masterdevlop 分支构建创建发布,并将自动部署到 BVT - UKS

    现在可以在方便时手动部署 UAT - UKX 两个区域。

    遗憾的是,Azure DevOps 不会阻止您在部署到 UAT - UKX 两个阶段之前手动部署到一个或两个 PRD - UKX 阶段。但是,在我的情况下,我需要以任何方式对这些阶段进行部署前批准,因此如果有人确实尝试跳过 UAT - UKX 阶段,批准者可以简单地拒绝部署。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      相关资源
      最近更新 更多