I have a GitHub repository established with a Multibranch Pipeline job in Jenkins, and until now have been content to require the continuous-integration/jenkins/branch
status check, as Jenkins posts when building a local branch from the repo. However, I've now got a pull request from an external fork, and Jenkins has posted a continuous-integration/jenkins/pr-merge
status check for that. And because the continuous-integration/jenkins/branch
status check is required, the PR is blocked from being merged.
What's the expected approach here, for a project that will have a combination of local branches (from its primary maintainers) and forks (from occasional outside contributors)? Must I forgo having either of the status checks be required on the GitHub side? Or is there some other way to get Jenkins to post a stable status check context regardless of the PR's source?
The primary avenues for integrating your Jenkins instance with GitHub are: "build integration" - using GitHub to trigger builds. "authentication integration" - using GitHub as the source of authentication information to secure a Jenkins instance.
Next to "Branch protection rules", click Add rule. Under "Branch name pattern", type the branch name or pattern you want to protect. Optionally, enable required pull requests. Under "Protect matching branches", select Require a pull request before merging.
I had the same issue, with thanks to a helpful colleague I found that, by default, the branch source plugin builds branches that aren't necessarily associated with any pull request.
(Relates to the tickbox "Build origin branches" in the link: https://go.cloudbees.com/docs/cloudbees-documentation/cje-user-guide/index.html#_controlling_what_is_built )
This is what creates the status check of "continuous-integration/jenkins/branch".
I unticked that option and ticked the "Build origin PRs (merged with base branch" option, and both status checks now have the same context "continuous-integration/jenkins/pr-merge" and PRs both from forks and branches now trigger the same status check.
In my setup, the tickboxes are in the organisation configuration (since I am also using the GitHub organisation plugin), under Projects > GitHub organisation > Advanced, hopefully on yours, the same options show in your multibranch pipeline config.
Hope this helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With