Azure DevOps(VSTS):如何在将暂存区切换到当前版本的生产之前,停止后续版本的管道覆盖暂存区?

时间:2018-10-10 09:49:32

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

我在Azure Dev Ops中为网络部署设置了以下发布管道:

Release Pipeline - Web Deployment

此配置方式...

  • 启用了连续部署
  • 开发阶段在发布后触发,没有预先部署批准,并将工件部署到开发人员插槽。
  • 测试和登台阶段是在上一个阶段之后触发的,已启用部署前和部署后批准,并将工件部署到相关插槽。
  • 生产阶段是在上一阶段之后触发的,仅启用了预部署,并且会交换过渡阶段和生产阶段。
  • 回滚阶段是手动触发的,仅启用了部署前批准,并将交换过渡阶段与生产阶段。

我知道,当某个阶段的批准仍在等待中时,则不能将另一个版本部署到该阶段。例如,R1正在测试阶段等待部署后的批准,因此,后续版本(R2,R3等)都不能在测试阶段将预部署排队。我也知道部署队列设置功能,但是认为这没有帮助-很高兴犯错。

所以我的问题是...

是否有一种自动方法,可以在我们批准生产阶段(将生产转移到生产)以用于当前版本之前停止后续的发行版覆盖登台时段?

我的例子是...

已批准在版本1(R1)的暂存插槽上进行后期部署。这意味着1)可以批准在R1上进行生产阶段的预部署(交换过渡到生产),以及2)R1上的过渡插槽是“免费的”,可以从另一个发行版进行部署。因此,现在,R2可以在批准的登台阶段进行预部署,这意味着在我们将登台转换为生产之前,它将有可能将R2部署到登台。因此,如果我们批准将R1投入生产,则会将R2交换到生产中,而不是按预期的方式交换R1。 仍然陪着我!此外,我们不希望在可能已经批准生产阶段之前将R2部署到阶段,因此,如果我们需要回滚(将生产交换到阶段),我们将交换原始版本,而不是R2。

我希望这是有道理的。显然,可以手动管理以避免这种情况,但希望有人能够建议如何自动实现。

FYI-第一篇Stack Overflow帖子,所以如果我没有遵循协议的话,请放轻松我;)并在此先感谢您的帮助。

0 个答案:

没有答案