繁体   English   中英

Azure DevOps(VSTS):如何在当前版本上交换分段到生产之前停止后续版本管道覆盖分段?

[英]Azure DevOps (VSTS): How to stop a subsequent release pipeline overwriting staging before swapping staging to production on the current release?

我在Azure Dev Ops中设置了以下版本管道,用于Web部署:

发布管道 - Web部署

如何配置......

  • 已启用持续部署
  • 开发阶段在发布后触发,没有预部署批准,并将工件部署到开发槽。
  • 在上一阶段之后触发测试和暂存阶段,启用预部署和部署后批准,并将工件部署到相关插槽。
  • 生产阶段在上一阶段之后触发,仅启用预部署,并将暂存插槽与生产槽交换
  • 回滚阶段是手动触发的,仅启用了预部署批准,并将暂存插槽与生产槽交换

我理解,当一个阶段的批准仍然未决时,另一个版本无法部署到该阶段。 例如,R1正在等待测试阶段的部署批准后,因此没有后续版本(R2,R3等)可以在测试阶段将预部署排队。 我也知道部署队列设置功能但不认为这有帮助 - 很高兴出错。

所以我的问题是......

是否有一种自动方式可以在我们批准生产阶段之前停止后续版本覆盖暂存插槽,从而将当前版本的生产阶段交换到生产阶段?

我的榜样是......

已批准在版本1(R1)的暂存插槽上进行部署。 这意味着1)生产阶段的预部署(交换分段到生产)可以被批准用于R1和2)R1上的暂存插槽是“免费”从另一个版本部署到。 所以现在,R2可以预先部署批准的暂存阶段,这意味着它可能会在我们将暂存转换为R1生产之前将R2部署到暂存阶段。 因此,如果我们批准R1进入生产阶段,我们将把R2换成生产,而不是按预期交换R1。 还在我这儿! 此外,在我们可能批准生产阶段之前,我们不希望将R2部署到暂存,因此如果我们需要回滚(将生产交换到暂存),我们将交换原始版本,而不是R2。

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

仅供参考 - 第一个Stack Overflow帖子,如果我没有遵循协议,请放轻松;)并提前感谢任何帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM