How to trigger jenkins build upon bitbucket pull request merged

帅比萌擦擦* 提交于 2020-01-06 03:10:29

问题


I looked at all other related questions and answers, didn't find anything solid, hence I'm opening a new question to look for your kind help, I've been working on this the whole day, any help I can get would be highly appreciated.

Here's my environment:

  • self-hosted jenkins server (Jenkins ver. 1.651.3) with git and bitbucket plugin installed.
  • https://bitbucket.org (I do not have a self-hosted bitbucket server)

What I want to do: to trigger jenkins build upon pull request got merged from feature branch to master branch.

Different setting combinations which I had tried:

    • jenkins: 'Build when a change is pushed to BitBucket' checked.
    • bitbucket: web hooks trigger: 'Repository push' checked.

Result: build was triggered successfully upon commit to master branch, but that's not what I want, but at least I know the communication between my jenkins server and bitbucket is fine.

    • jenkins: 'Build when a change is pushed to BitBucket' checked.
    • bitbucket: web hooks trigger: 'Repository push' checked, and Pull Request - 'Merged' checked.

Result: jenkins does not respond to the pull request merged action. I assumed it would work since I had the Pull Requst - 'Merged' checked in the web hooks trigger setting, and I did see the request was sent by bitbucket to my jenkins server, and it got 200 status code back from my jenkins server, but still, nothing happens.

    • jenkins: 'Build when a change is pushed to BitBucket' checked. And besides that, I installed another plugin called bitbucket-pullrequest-builder-plugin, and configured it according to the instruction.
    • bitbucket: web hooks trigger: 'Repository push' checked, and Pull Request - 'Merged' checked.

Result: with the help of bitbucket-pullrequest-builder-plugin, the build was indeed triggered upon pull request created. But the jenkins server polls the bitbucket repository constantly, and I didn't find a way to stop that, no way to trigger build ONLY upon merge neither...

I heard there's people says that you'll need to install a post-hook plugin on the bitbucket server in order to do what I want to do, but the thing is I dont host the bitbucket...


回答1:


Based on some research you can have a few options as of today Nov 12 of 2017:

  • Use the generic post webhooks plugin that supports pull request trigger. And from jenkins pick it up with the generic webhooks plugin, then maybe do a secondary trigger from jenkins.

  • Upgrade the bitbucket server and webhooks to jenkins plugin. The server 4.13 does not work well with later webhooks to jenkins plugin. A paid version of the plugin probably is your best choice.

  • Or try bamboo that comes with the "plan banches" feature.




回答2:


When you configure GIT - push, commit... etc hooks, be sure to check the JENKINS git selection, and set the BRANCH to check for (** specifies all branches) and most importantly,

USE localtunnel.me or similar to set your JENKINS online or it won't work.



来源:https://stackoverflow.com/questions/37960358/how-to-trigger-jenkins-build-upon-bitbucket-pull-request-merged

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!