BitBucket WebHook Jenkins

时间:2017-08-30 23:53:59

标签: jenkins bitbucket hook

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

我花了一些时间研究这个,所有的答案都来自几年前,并没有找到任何指南,因为事情似乎已经发生了变化。

我想做的事情: bitbucket推送到特定分支会触发构建。

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

问题1 :Bitbucket不会触发GET,而是另一个导致403的请求。我使用postman测试,它可以使用GET,但不能使用POST。

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

我如何解决这些问题? Bitbucket在定制时似乎不是很灵活。 bitbucket的Jenkins插件有很多“坏”的东西。评论。开发人员目前如何做到这一点?

2 个答案:

答案 0 :(得分:15)

Jenkins CI服务器的特定解决方案 - 在Jenb for Bitbucket 插件的Webhook已经在最新版本的Bit-Bucket中商业化,目前价格约为4800美元,这是早期免费提供的,因为想要节省成本的人可以通过使用bit-bucket的webhooks功能来寻找替代解决方案: -

创建webhook的步骤: -

BitBucket Side

1)转到你的bitbucket repo,点击Repository Setting,在WORKFLOW下获取WEBHOOKS选项并创建一个webhook。

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

b)在名称标签中,提供您选择的任何名称

c)在保存之前单击TEST CONNECTION。确保您获得http状态200 d)查看日志详细信息,检查您的请求和响应是否正确。

要照顾的事情 詹金斯方面: -

1)确保在Jenkins作业中使用bitbucket webhook中提到的存储库。 2)在SCM选项中,激活/选择轮询SCM选项,不要在计划中提及任何内容,将其留空。 3)配置休息工作,

每当你的git repo观察到任何变化时,Jenkins都会触发自动构建。默认情况下,激活推送触发器,如果​​要激活其他操作,请在创建webhook时选择这些事件。

***指定存储库webhook中的分支: -

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

干杯,

答案 1 :(得分:4)

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