我遇到这样一种情况,两个提交非常接近(相隔几秒钟)合并到母版(例如FIRST和SECOND)。两者都触发了构建管道:FIRST首先触发了管道,SECOND首先触发了管道(构建并行运行)。无论出于何种原因,提交SECOND的构建管道首先完成,然后30秒钟,提交FIRST的构建完成。
我的自动发布管道已配置为始终从构建管道中获取“最新”工件。上述事件序列导致首先部署了SECOND更改,然后部署了FIRST更改(由于其管道完成了第二次更改),并踩在了先前的版本上,有效地将旧位部署到了该服务。
有什么办法可以防止这种情况发生?即使构建管道由于间歇性原因而排在第二位,我也不希望发布会因为刚刚完成的最近更改而sto脚。
编辑:感谢那些建议/支持批处理构建的想法的人,但这不是我要启用的选项。我仍然希望每个提交都触发其自己的构建(以简化构建中断原因的分配)。我只是在寻找按提交顺序触发的版本,而不是构建完成的顺序。
谢谢!
答案 0 :(得分:3)
您可以在触发器中将batch设置为true,因此系统将等待直到构建完成。在Azure DevOps或YAML中,将“构建正在进行时的批处理更改”选项设置为true:
trigger:
batch: true
如果使用Pull请求,则应该没有问题,因为新的Push应该会取消正在进行的运行。在PR triggers
中检查自动取消答案 1 :(得分:1)