How to Trigger Multibranch Jobs from BitBucket Server

Issue

  • I want to configure Jenkins and BitBucket Cloud to automatically trigger Multibranch or Bitbcuket Team/Project jobs on changes

Environment

Resolution

The BitBucket Branch Source plugin provide support for integration of Bitbucket with multibranch project such as Pipeline Multibranch. The API listens for notification to the endpoint /bitbucket-scmsource-hook/notify.

Configuration in Jenkins

Multibranch Project

To track a single repository, create an item of type Multibranch Pipeline and use the BitBucket branch source:

Configure the SCM as explained in the documentation of the Bitbucket Branch Source Plugin. In the Advanced section, specify the Bitbucket server URL - as well as the SSH port if using SSH authentication for checkout credentials:

Bitbucket Team/Project

To track multiple repositories of a Bitbucket project, create an item of type BitBucket Team/Project and use BitBucket Team/Project repository source:

Configure the SCM as explained in the documentation of the Bitbucket Branch Source Plugin. In the Advanced section, specify the Bitbucket server URL - as well as the SSH port if using SSH authentication for checkout credentials:

Once a project is saved, it automatically listens for events on the /bitbucket-scmsource-hook/notify.

Further Configuration

Note: At the time of this article, there is no support for auto-registration of webhooks for Bitbucket server. For that reason, each repository hook needs to be configured manually in Bitbucket Server. This improvement is tracked by JENKINS-38748.

Configuration in Bitbucket Server

You need to install the add-on Post Webhooks for Bitbucket. This add-on has been designed by the community to provide support to the Bitbucket Branch Source plugin with BitBucket Server as part of JENKINS-33507. The source code of this add-on can be found on GitHub at https://github.com/topicusfinan/bitbucket-webhooks-plugin.

Once installed, this add-on adds a Webhooks section in the Settings of you repositories. To create a Webhook for a repository, click on Add WebHook on the top right:

Give it the name you want and specify the Bitbucket Branch Source endpoint $JENKINS_URL/bitbucket-scmsource-hook/notify:

Ensure that the webhook is created and enabled:

From now on, Push and Pull Request events from that repository are notified to the Bitbucket Branch Source plugin.

Troubleshooting

Please have a look at Bitbucket Webhooks Troubleshooting to troubleshoot issues with these solutions.

References

Bitbucket Integration

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.