PR和BatchedCI触发器的结果参差不齐

时间:2020-10-26 11:53:49

标签: azure-devops azure-pipelines

在我们的开发中,我们使用master分支和release分支。发布分支受到保护,只有拉取请求才能更改发布分支。我们有一个应用程序可以从库管道中获取构建工件。

我以前有两个CI管道,一个在主节点上更改时触发,另一个在PR释放时触发。效果很好,但是这两个管道几乎相同,除了一个管道是从主管道中获取库构件,另一个是从发布管道中获取,以编译应用程序。

为了使其更易于维护,我想合并这些管道并使用以下触发器:

# CI triggers
trigger:
  batch: true # To reduce the number of runs to start. Will batch all commits that happen during an active run
  branches:
    include:
    - master

# PR triggers
pr:
  branches:
    include:
    - master
    - release

用于获取正确工件的触发器和机制工作正常。

使用发布工件进行的编译失败时,git上的PR正确显示了这一点。但是,当由batchedCI在master上触发的管道运行成功时,PR显示运行已成功(在使用发布工件时,情况并非如此)。

如何使用单个管道,让git PR只查看该PR触发的管道运行,而忽略了master上BatchedCI触发的那些管道运行?

1 个答案:

答案 0 :(得分:1)

抱歉,默认情况下无法执行此操作。

您已经清楚地分析并提到了根本原因:

问题是,如果PR触发器失败,则随后的CI触发器 成功,则PR被认为是成功的,因为 最新运行成功。

作为解决方法,您可以尝试为PR添加其他状态检查。

分支策略是一项强大的功能,可确保在其中高质量代码 通过为所有拉取请求建立需求来确定您的回购。外部 服务可以使用 PR状态API 详细状态发布到您的 公关。外部服务的分支策略为 那些参加PR工作流程的第三方服务,以及 制定政策要求。

有关详细信息,您可以在此处参考我们的官方文档:

如果您觉得这使事情变得更加复杂,那么只需保留两个管道也是一种选择。

相关问题