BitBucket WebHook 詹金斯

BitBucket WebHook Jenkins

我想配置 bitbutcket 以触发 jenkins 构建。

我花了一些时间研究这个问题,所有答案都是几年前的,没有找到任何指南,因为从那以后情况似乎发生了变化。

我想做什么: 将 bitbucket 推送到特定分支会触发构建。

我得到的是: Bitbucket web hooks 在推送到任何分支时向 Jenkins 发出 HTTP 请求。我还在 Jenkins 上安装了 Bitbucket 插件,它在作业配置 Build when a change is pushed to BitBucket 中添加了一个复选框。尽管我推送到 SCM 部分中配置的分支,但此复选框似乎不起作用(也许我设置错了?这方面的文档很少)。

问题 1:Bitbucket 不触发 GET,而是另一个导致 403 的请求。我用邮递员测试过,它适用于 GET,但不适用于 POST.

问题 2: 此 HTTP 构建请求在推送到任何分支时触发。虽然构建仍然限于特定分支,但似乎没有必要一直重建。

我该如何解决这些问题? Bitbucket 在定制这个方面似乎不是很灵活。 bitbucket 的 Jenkins 插件有很多 'bad' 评论。开发者目前是如何做到这一点的?

您的 Jenkins URL 可以从您的 bitbucket 服务器访问吗?如果是的话,那么做起来应该相当简单。您在存储库中将 webhook 添加为 http://<url-of-jenkins>/git/notifyCommit?url=<url-of-repository>。当 jenkins 收到此 POST 时,它会自动触发构建那些使用此 git 回购和您在 webhook 中提供的 URL 的作业。
但是您还需要确保您的 Build Schedule 对于这些作业设置为空。否则它不会被触发。您也可以在 webhook 中指定一个分支 URL
请参阅此处 Push Notification from repository
https://wiki.jenkins.io/display/JENKINS/Git+Plugin

SPECIFIC solution for Jenkins CI server--Webhook to Jenkins for Bitbucket 插件已在最新版本的 Bit-Bucket 中商业化,目前的价格是 4800 美元左右,之前是免费提供的,因此,想要省钱的人可以使用 bit-bucket 的 webhooks 功能寻求替代解决方案:-

创建 webhook 的步骤:-

BitBucket 端

1) 转到您的 bitbucket 存储库,单击存储库设置,在 WORKFLOW 下获取 WEBHOOKS 选项并创建一个 webhook。

a) 创建 webhook:- URL https://JenkinsserverURL/git/notifyCommit?url=https://bitbucket.repository-link/repository.git

b) 在名称选项卡中,输入您选择的任何名称

c) 在保存之前点击测试连接。确保您获得 http 状态 200 d) 查看详细日志,检查您的请求和响应是否正确。

需要注意的事项 詹金斯方面:-

1) 确保在 Jenkins 作业中使用了 bitbucket webhook 中提到的存储库。 2) 在SCM option, activate/select Poll SCM option, schedule 什么都不提,留空。 3)配置休息工作,

每当您的 git 存储库观察到任何更改时,都会在 Jenkins 中触发自动构建。默认情况下,推送触发器已激活,如果您想激活其他操作,请在创建 webhook 时 select 这些事件。

*** 在仓库 webhook 中指定分支:-

http://yourserver/git/notifyCommit?url=<URL of the Git repository>[&branches=branch1[,branch2]*][&sha1=<commit ID>]

干杯,