从Bitbucket Pull Request触发Jenkins作业

从SCM这样的Bitbucket触发Jenkins作业有很多种方法,但是我想要做的是使用作为Pull Request源的分支触发构build。

到目前为止,我们已经使用了Bitbucket合并请求生成器,但是它非常脆弱,不可靠,而且支持不好。

https://wiki.jenkins-ci.org/display/JENKINS/Bitbucket+pullrequest+builder+plugin

Bitbucket在Webhooks方面提供了相当不错的function,当与Jenkins Git Plugin一起使用时,允许基于各种Bitbucket事件(例如,Pull Request更新)触发构build。

还有Bitbucket的Webhook插件,但是再一次没有提供很多关于dynamicselect你想要构build的分支的信息。

https://wiki.jenkins-ci.org/display/JENKINS/BitBucket+Plugin

但是,这似乎是触发回购的一个民意调查,然后在那里试图build立任何分支不同于主分支。

我们的用例是,我们允许开发者创build他们自己的分支,然后他们为开发分支创build合并请求。

似乎没有什么办法可以触发使用开发人员创build的分支作为构build分支的构build(除了前面提到的Bitbucket合并请求构build器)。

我是对还是错?

我们为每个开发人员创build一个jenkins作业,然后使用参数化的Jenkins版本,只需input分支名称,然后单击构build即可。 我知道这不是完全自动的,但它运作得很好。 然后你可以使用Stash通知器插件向Bit Bucket发信号表示构build是好的 – 你在Bit Bucket中得到一个很好的绿色勾号。

我已经在客户的公司实现了这样的解决scheme,我认为BitBucket的pull请求插件非常好,并且能够满足大多数需求。

你是正确的,BitBucket拉请求插件是你最好的select,否则它可能会要求你开发自己的插件,但我真的不认为你应该作为插件允许你所有你能想到的。

在你的情况下,你可以configuration插件只build立特定的分支或所有分支。

假设开发人员从开发分支签出一个新分支,然后开发并推送一个提交,那么configuration为多存储库多分支pipe道的Jenkins作业每10分钟扫描一次BitBucket团队,一个新的代码被推送,它自动地为拉取请求创build一个新的作业,并为分支创build一个新的作业。

当拉取请求作业结束时,它会通知BitBucket的构build状态(成功,失败),然后审阅者在Confluence中看到一个绿色的标记,表示作业已经正确完成了新的代码,然后他回顾了代码 – 这给了他两个因素:第一个是代码与开发分支的代码玩的很好,第二个是他自己的代码审查,如果他批准代码,那么新的代码合并到开发中,被自动closures(或不可以 – 它可以在插件中configuration),下一次扫描运行时,它会识别推动开发并触发新的运行。

如果您查看插件configuration,您可以configuration组中的哪些存储库以及每个存储库中的哪些分支应该自动构build。

您可以在我的Github帐户中查看我为该客户编写的pipe道。

我希望我的回答对你有所帮助。