Azure devops Azure发布管道-在另一个阶段完成之前,是否可以阻止手动触发阶段

Azure devops Azure发布管道-在另一个阶段完成之前,是否可以阻止手动触发阶段,azure-devops,azure-pipelines,azure-pipelines-release-pipeline,Azure Devops,Azure Pipelines,Azure Pipelines Release Pipeline,在八达通部署中有生命周期的概念。它们看起来像下面这样- 发展 开发1 开发2 登台 斯塔金诺夫 刺激 ProdEnv 它允许您说“在部署到登台之前,必须完成来自开发人员的环境” 在Azure Devops中,如果使用“后阶段”触发器,就可以实现这一点。然而,这使得到下一阶段的部署自动进行。您可以设置第一阶段后或第二阶段前的批准来停止此操作,但如果这些批准被“拒绝”,则在不一定被拒绝的情况下,这看起来是失败的—通常我们只是不想部署到这些环境中 另一个解决方法是在手动触发的阶段的一个

在八达通部署中有生命周期的概念。它们看起来像下面这样-

  • 发展
    • 开发1
    • 开发2
  • 登台
    • 斯塔金诺夫
  • 刺激
    • ProdEnv
它允许您说“在部署到登台之前,必须完成来自开发人员的环境”

在Azure Devops中,如果使用“后阶段”触发器,就可以实现这一点。然而,这使得到下一阶段的部署自动进行。您可以设置第一阶段后或第二阶段前的批准来停止此操作,但如果这些批准被“拒绝”,则在不一定被拒绝的情况下,这看起来是失败的—通常我们只是不想部署到这些环境中

另一个解决方法是在手动触发的阶段的一个门中使用RESTAPI,如中所示,但这感觉不正确-它抛出了“部署图”,这可能看起来很琐碎,但它不允许从外部进来的人看到真正发生了什么。同时,它也不会阻止任何人在任何时候手动触发


有没有办法做到这一点?

目前恐怕没有更好的办法了。即使您在gate中使用restapi解决方案,如果您没有通过gate,结果阶段状态与“拒绝”相同。

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

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

现在,只要方便,就可以手动部署UAT-UKX两个区域

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


谢谢你,休。你知道将来有什么计划吗?我认为这是一个重要的功能,也是其他平台所拥有的功能之一。你可以通过此url提交建议单来建议新功能:在提出建议后,你可以投票并添加对该反馈的评论。当有足够多的社区对此反馈进行投票并添加评论时,产品团队成员将认真对待此反馈