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 ge
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:
https://YOUR.JENKINS.SERVER:PORT/bitbucket-hook/
and if you have setup authentication on jenkins then URL must be like
https://USERNAME:PASSWORD@YOUR.JENKINS.SERVER:PORT/bitbucket-hook/
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.
I have our Jenkins instance set up to poll the repository every minute. Is that not frequent enough for your needs?
Our Jenkins configuration:
Build Triggers > Poll SCM = Checked
Build Triggers > Poll SCM > Schedule =
# every 1 minute
*/1 * * * *
The token stuff is useless if you use authentication in Jenkins.
use the Git plugin, and use a POST hook with http[s]://your.site.com[/jenkins]/git/notifyCommit?url=git@bitbucket.org:your-username/your-repo.git
in it. Be sure that polling is on and schedule at some value, or this won't work.
Just install the bitbucket plugin and follow the instructions as can be found on the plugins page:
Configure your BitBucket repository with a POST hook, using URL JENKINS_URL/bitbucket-hook (no need for credentials). On each commit, all jobs with "Build when a change is pushed to BitBucket" option enabled will be triggered.
See here: https://wiki.jenkins-ci.org/display/JENKINS/BitBucket+Plugin
Using Poll SCM is good, however it has few disadvantages also, it will fetch metadata from you GIT Repository, which anyway is using some percentage of bandwidth from your bitbucket server and Jenkins server.
It's better that Bitbucket knows when to trigger Jenkins if any new update arrives.If you are using bitbucket latest versions, there are a plugin name "Stash webhooks for Jenkins" which is now compatible with Bitbucket.
Within this plugin, you just have to specify the Jenkins URL and the JOB name, this also provides an extra layer of security between Jenkins and Bitbucket.
This is the plugin (Stash webhooks for Jenkins which is not called Bitbucket webhooks for Jenkins) which can be downloaded from Atlassian Marketplace.
Above is the Add-on settings where you have to specify Jenkins URL and Repo Clone URL. With the trigger, you can also check the connection etc.
Link for the plugin : Bitbucket webhooks for Jenkins
How this Plugin works:
With both Jenkins and Stash now configured, if you commit code, a build trigger will automatically occur. What happens is the post-receive hook fires a GET request to Jenkins, which then tells it to poll the repository (why you need to have polling turned on). The poll checks to see if there are actually any changes. Since there are, it triggers the build!
I was struggling with this issue for long, and couldn't find a solution in Jenkins documentation, I found here a solution in Cloudbees support site.
You just need to add these tow webhooks to your bitbucket repo and it works very fine :
https://JENKIN_URL/bitbucket-scmsource-hook/notify
https://JENKIN_URL/bitbucket-hook
And i work for all pipelines even MultiBranch ones.
Hope this helps someone ;)
ADA