如何让 Jenkins 构建将故障报告回 Bitbucket 服务器?

How can I get Jenkins builds to report failures back to Bitbucket server?

我的工作是 运行 Jenkins 和 Bitbucket Server(因此他们托管自己的 bitbucket 版本,而不是 bitbucket 云)。我习惯于让 passing/failing 在 github 上构建,而 bitbucket cloud 会立即在 PR 和分支上报告构建是通过还是失败。我想在当前环境下将这份礼物送给我的团队。我如何在 Bitbucket 服务器中获取 PR 以接收来自 Jenkins 的 success/failure 构建?


[图 1 只是展示了我想要的功能示例,在 github+codeship 中的 PR 上运行]


Webhook to Jenkins for Bitbucket can help notify Jenkins to poll whenever there is a commit, you still need to be mindful of the “lazy ref updates” in Bitbucket (described in this thread)

We had to implement something that would do a get to the REST API for the pull-request/*/changes before the call to the Jenkins /git/notifyCommit url.

最后一个 Jenkins URL /git/notifyCommit 来自 Jenkins Git plugin.

在“Configuring Webhook To Jenkins for Bitbucket”查看更多信息。

一旦正确调用了 Jenkins,您就可以像“", use the "Jenkins Stash Pullrequest Builder", from nemccarthy/stash-pullrequest-builder-plugin.

中提到的那样

bitbucket 服务器有 build-status API。它为特定提交存储 build-status,没有单独的 PR 构建状态。 PR build status 是本次 PR 中 head commit 的一个构建状态。

您可以自己实现剩余的 api 调用以更新构建状态或使用现有插件之一。我们使用 Post Webhooks for Bitbucket bitbucket plugin in conjunction with Bitbucket Branch Source jenkins 插件。

您可以设置 Stash notifier plugin ,它与 BitBucket 完美配合,并将构建状态通知给分支和拉取请求

您可以使用 BitBucket REST API 来实现吗?

这里 how-to 更新提交了构建状态: Updating build status for commits

然后提交状态显示在合并请求和分支上