jenkinsci / bitbucket-push-and-pull-request-plugin

Plugin for Jenkins v2.138.2 or later, that triggers job builds on Bitbucket's push and pull request events.

Home Page:https://plugins.jenkins.io/bitbucket-push-and-pull-request

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot get multibranch pipelines to trigger on push

mpschmitt opened this issue · comments

I've been wrestling this for a bit now, so I thought I'd reach out for some extra help. I'm running Bitbucket 7.21 Server with Jenkins 2.414.3 and Bitbucket Push and Pull Request Plugin 3.0.0

My job is using multibranch pipeline.

Here's the current state. In my Jenkinsfile I have added:

properties([
  pipelineTriggers([
    [
      $class: 'BitBucketPPRTrigger',
      triggers : [
        [
          $class: 'BitBucketPPRRepositoryTriggerFilter',
          actionFilter: [
            $class: 'BitBucketPPRServerRepositoryPushActionFilter',
            triggerAlsoIfNothingChanged: true,
            triggerAlsoIfTagPush: false,
            allowedBranches: ""
          ]
        ]
      ]
    ]
  ])
])

pipeline {...etc.

When I push after making a change in my branch, I see that the event is received properly, but the build is not kicked off:

`Dec 06, 2023 7:49:58 AM INFO io.jenkins.plugins.bitbucketpushandpullrequest.receiver.BitBucketPPRHookReceiver doIndex
Received POST request over Bitbucket hook
Dec 06, 2023 7:49:58 AM INFO io.jenkins.plugins.bitbucketpushandpullrequest.processor.BitBucketPPRPayloadProcessorFactory createProcessor
Create BitBucketPPRRepositoryServerPayloadProcessor
Dec 06, 2023 7:49:58 AM INFO io.jenkins.plugins.bitbucketpushandpullrequest.action.BitBucketPPRServerRepositoryAction 
Received commit hook notification from server for destination branch: jenkins-prod-test1
Dec 06, 2023 7:49:58 AM INFO io.jenkins.plugins.bitbucketpushandpullrequest.action.BitBucketPPRServerRepositoryAction 
Received commit hook type from server: BRANCH`

The build doesn't start automatically.
If I do a multibranch scan manually it picks up the change and the build starts.

I see that other folks have had issues with multibranch pipelines, but can anyone see a reason why this wouldn't work?
Or any tips where else I might look for more clues?

A bit more detail:

I do also have the older Bitbucket plugin installed, but I took the necessary workaround step to change the hook URL for this to be bitbucket-ppp-hook

The sending of the information over that webhook appears to be working fine, it's some issue with when it gets received on the Jenkins side and gets dropped for some reason.

My URL looks like this on the bitbucket side for the webhook:

https://[my jenkins server]/bitbucket-ppp-hook/

If I look at the Bitbucket Push and Pull request Hook log in the view of the branch job that should have run, I see:
image

Similarities with this issue?
#99

And this is how I've configured the URL
image

In my Multibranch Pipeline configuration I have these checked:
image

I realized that the manage hooks option is not selected for this Bitbucket endpoint. Should it be?

image

I added some more logging to the logger and I can see that it's receiving the payload correctly:

Dec 12, 2023 12:21:26 PM INFO io.jenkins.plugins.bitbucketpushandpullrequest.receiver.BitBucketPPRHookReceiver doIndex
Received POST request over Bitbucket hook
Dec 12, 2023 12:21:26 PM FINEST io.jenkins.plugins.bitbucketpushandpullrequest.receiver.BitBucketPPRHookReceiver
the payload is: {"actor":{"name":"[REDACTED]","emailAddress":"[REDACTED]","id":"2553","displayName":"[REDACTED]","active":true,"slug":"[REDACTED]","type":"NORMAL","links":{"clone":[],"self":[{"href":"http://[REDACTED]"}]}},"repository":{"slug":"[REDACTED]","id":"125","name":"[REDACTED]"scmId":"git","state":"AVAILABLE","statusMessage":"Available","forkable":true,"project":{"key":"DEV","id":"103","name":"[REDACTED]","links":{"clone":[],"self":[{"href":"http://[REDACTED]"}]},"public":false,"type":"NORMAL"},"links":{"clone":[{"href":"ssh://git@[REDACTED].git","name":"ssh"},{"href":"http://[REDACTED].git","name":"http"}],"self":[{"href":"http://[REDACTED]"}]},"public":false},"changes":[{"ref":{"id":"refs/heads/jenkins-prod-test1","displayId":"jenkins-prod-test1","type":"BRANCH"},"refId":"refs/heads/jenkins-prod-test1","fromHash":"[REDACTED]","toHash":"[REDACTED]","type":"UPDATE"}]}
Dec 12, 2023 12:21:26 PM FINE io.jenkins.plugins.bitbucketpushandpullrequest.observer.BitBucketPPRObserverFactory
Add BitBucketPPRPushServerObserver for {}
Dec 12, 2023 12:21:26 PM INFO io.jenkins.plugins.bitbucketpushandpullrequest.action.BitBucketPPRServerRepositoryAction 
Received commit hook notification from server for destination branch: jenkins-prod-test1
Dec 12, 2023 12:21:26 PM INFO io.jenkins.plugins.bitbucketpushandpullrequest.action.BitBucketPPRServerRepositoryAction 
Received commit hook type from server: BRANCH

One of the classes I've specified in my logger is io.jenkins.plugins.bitbucketpushandpullrequest.filter.repository.BitBucketPPRServerRepositoryPushActionFilter

But I'm not seeing any messages related to that one when I check the logger log. Does that mean the trigger is just not firing at all for some reason?

Discovered this article and realized that as of Bitbucket 5.4, native build triggering webhooks are supported, so I no longer need this plugin:

https://docs.cloudbees.com/docs/cloudbees-ci-kb/latest/client-and-managed-controllers/how-to-trigger-multibranch-jobs-from-bitbucket-server#configuration-in-bitbucket-server

Got that working pretty quickly. We can probably close this ticket unless someone feels highly motivated to get this fixed.

@mpschmitt thank you,
Happy to read that you have found a solution!

I’m going to analyze the problem. I hope, I can replicate it, that is the hard part.