Git VSTS:当另一个提交进入主分支时,使现有PRs上的构建无效

Git VSTS:当另一个提交进入主分支时,使现有PRs上的构建无效,git,azure-devops,azure-pipelines,Git,Azure Devops,Azure Pipelines,我们已经设置了一个构建策略,作为进入主分支的CI管道的一部分。该策略确保在挤压将PR更改合并到master之前成功构建PR更改+master head 今天我们遇到了这样一种情况:两个单独的变更列表(它们与master和它们之间没有合并冲突)进入master分支,但是当第二个变更列表完成时,滚动master构建失败 通过分析,我们注意到在第一个PR完成之前,第二个PR已经成功执行了构建策略。因此,在合并到master之前,第二个PR从未使用现在的新头和当前更改构建,这会抓住问题 因此,问题是,当

我们已经设置了一个构建策略,作为进入主分支的CI管道的一部分。该策略确保在挤压将PR更改合并到master之前成功构建PR更改+master head

今天我们遇到了这样一种情况:两个单独的变更列表(它们与master和它们之间没有合并冲突)进入master分支,但是当第二个变更列表完成时,滚动master构建失败

通过分析,我们注意到在第一个PR完成之前,第二个PR已经成功执行了构建策略。因此,在合并到master之前,第二个PR从未使用现在的新头和当前更改构建,这会抓住问题


因此,问题是,当另一个提交进入master时,如何使打开的PRs上的所有构建无效。

导航到
分支
部分,单击master旁边的省略号并选择
分支策略

然后添加
生成验证
策略。链接到现有生成定义,然后设置以下字段:

  • 触发器:自动
  • 政策要求:要求
  • 生成过期:立即
这样,无论何时更新功能分支或更新主功能,PRs目标主功能将始终需要新的构建,即主功能接受不同的PR

根据你的描述,我猜你的
构建到期时间
不是立即设置的,因此当pr1合并到master时,pr2的构建时间没有正确到期,因此VSTS不要求重建pr2,而是允许合并pr2





让我们确认一下情况:您是否有两个请求将不同的分支合并到主分支?然后一个拉请求完成并合并,然后您希望完成另一个拉请求并合并冲突。我说的对吗?在拉请求策略中设置生成过期时间如何?没有合并冲突。我按照答案中的建议将构建到期时间更新为“立即”。谢谢完美的非常感谢。跟进问题: