I need to integrate Bitbucket with Jenkins. So that whenever a PR is opened it will trigger a build in Jenkins. Then commit status of the last commit in the PR will be updated as failed or success and this commit wont trigger the build again. (This works beautiful with Github but seems to be a nightmare for me with Bitbucket)
So far I did:
- Installed Bitbucket pull request builder plugin.
- Set everything up like its described in https://github.com/jenkinsci/bitbucket-pullrequest-builder-plugin#readme
- User has write permissions to the repository (we added shh pub key to organization and its in the group that has write permissions)
Problems
- Build is triggered over and over again for the same PR/commit
- Commit status is not updated on bitbucket
Let me know if I can provide more information.
In my case, the Jenkins URL was set to
http://jenkins:8080
and when such a URL was sent to BitBucket via their API, BitBucket returned the error "Invalid URL" (Look in Jenkins Logs:http://yourjenkins:8080/log/all
) Which is not handled by the BitBucket Pull Request Builder plugin and thus kept continuously rebuilding all of our pull requests because it thought that build was not in progress. After setting Jenkins URL tohttp://jenkins.domain.tld:8080/
orhttp:///jenkins
, the BitBucket API started accepting the URL and everything started to work.But in your case it may be possible that some other error is the cause. You can check your Jenkins Error log to see the failure.
See the following issue: Build status notification fails with Enter a valid URL