How do I get Jenkins to build on push to a BitBucket git repository?

Allen T. picture Allen T. · Jun 27, 2012 · Viewed 66.9k times · Source

I have a git repository hosted on BitBucket, and have set up SSH authentication between the repository and my Jenkins server. I can build on Jenkins manually, but cannot get the Jenkins service on BitBucket to trigger builds.

Jenkins configuration:  
- Project Name: [my_jenkins_job]  
- Build Triggers:  
--Trigger Builds Remotely:  
---Token: [token]

BitBucket configuration:  
- Endpoint: http://[my_jenkins_address]/job/[my_jenkins_job]/build (I've also tried build?token=[token])  
- Project Name: [my_jenkins_job]  
- Module Name: [blank]  
- Token: [token]

Visiting http://{my_jenkins_address}/job/{my_jenkins_job}/build?token={token} kicks off a build properly.

Why doesn't pushing a change to BitBucket cause Jenkins to initiate a build?

Answer

salcosand picture salcosand · Jan 31, 2015

Due to the Jenkins Hook of Bitbucket is not working at all for me and I have different Jenkins projects for different branches I had come to this solution:

  • Install Bitbucket Plugin at your Jenkins
  • Add a normal Post as Hook to your Bitbucket repository (Settings -> Hooks) and use following url:

https://YOUR.JENKINS.SERVER:PORT/bitbucket-hook/

and if you have setup authentication on jenkins then URL must be like

https://USERNAME:[email protected]:PORT/bitbucket-hook/

  • Configure your Jenkins project as follows:
  • under build trigger enable Build when a change is pushed to BitBucket
  • under Source Code Management select GIT; enter your credentials and define Branches to build (like **feature/*)

By this way I have three build projects, one for all features, one for develop and one for release branch. Make sure to include the slash ('/') on the end of the URL or the hook won't work.

And best of it, you don't have to ad new hooks for new Jenkins projects.