是否有相当于 "Only show latest build status" 的 Jenkins 管道?

Is there a Jenkins pipeline equivalent of "Only show latest build status"?

我们正在迁移到 Jenkins 管道。我们使用 Jenkins 在 Bitbucket 中更新 branches/PRs 的构建状态。

我们在 Bitbucket 中的一项合并检查是 "Check the last commit for at least 1 successful build and no failed builds"。这意味着我们无法合并,除非在 Jenkins 上有 1 次成功构建最新提交,并且没有失败的最新提交构建。

有时,Jenkins 构建会因与代码无关的原因而失败,而下次您 运行 时构建就没问题了。但是,这意味着分支无法合并,因为至少有一个构建失败。

为了解决这个问题,我们之前可以在构建状态通知程序插件配置中勾选 "Only show latest build status"。到目前为止,我们无法在 Jenkinsfile 中找到任何等效的配置方法。有谁知道这是否可能,如果可能的话如何?

此问题与 Multi branch pipeline with bitbucket build status notifier plugin in jenkins 重复,但从未真正回答过该问题。

Build REST API of Bitbucket, and there is even a step-by-step example of your exact case, being last build failed for external reasons, and a new build succeeds

似乎涵盖了您的用例

为了覆盖已报告构建的状态,您将需要使用相同的 commit sha 和相同的 key

关于Bitbucket Build Status Notifier,它允许您指定一个buildKey作为可选参数。您应该确保指定此参数,并且该参数对于同一作业的所有构建始终相同。

这样,相同最后一次提交的新构建将覆盖最后一次提交,因为它将使用相同的 sha 和相同的密钥。

有关其他参数,请参阅插件文档的 API 部分。