Azure DevOps发布管道:使用手动触发器使发布流在多个环境中流动

时间:2019-01-30 08:51:38

标签: azure-devops

我正在尝试为我们的项目配置Azure DevOps Release管道,并且我对要实现的目标一目了然,但是我几乎一无所获。

这就是我想要的:

  1. 每个项目的构建管道将工件的版本作为工件输出,以将版本部署到任何环境中。
  2. 发布管道会在每个成功的构建(包括PR构建)上自动部署到第一个环境(在我们的情况下为“ dev”)。
  3. 对于每个连续的环境,必须将必须版本成功部署到所有先前的环境中。换句话说,为了部署到第二个环境(“ st”),它必须已经部署到第一个环境(“ dev”),并且要部署到第三个环境(“ at”),它必须已经成功部署到以前的所有版本(“ dev”和“ st”),等等。
  4. 所有环境对必须建立哪些分支的可部署工件都有特定的要求;例如只有从master构建的工件才能部署到“ at”和“ prod”。
  5. 批准人列表中的某人手动触发第一个环境后,每个连续部署到任何环境。批准者列表因环境而异。

我发现可以同时完成上述所有操作的唯一方法是,在成功部署后自动触发下一个环境,并添加带有手动批准步骤的预部署门。这是可行的,除了手动批准不会触发本身部署 ,而是让已经触发的部署开始执行。这意味着允许发布到下一个环境中的任何版本都将挂起,直到手动将其关闭为止。

我可以通过手动触发而不是自动触发来避免这种情况,但是我无法强制从一个环境流向另一个环境(例如,可以将其部署到“产品”而无需等待成功地部署到前一阶段) )。

有什么方法可以配置Azure DevOps发布管道以同时完成我上面概述的所有事情?

2 个答案:

答案 0 :(得分:0)

我认为您是正确的,只有通过批准门成功发布后,才能通过设置自动发布来实现这一目标。我看不到具有当前Azure DevOps功能的其他任何选项。

不幸的是,带有批准门的手册无法检查以前的环境是否已成功部署。

答案 1 :(得分:0)

我希望这可以在事实之后提供一些澄清。您是否看过YAML Pipelines,您可以指定conditions on each stage

然后这些阶段也可以得到批准。