<p>When using the <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow" rel="nofollow noreferrer">forking git workflow</a>, each engineer has their own separate server-side repository. In Jenkins, to work with this setup, you'll need to create a separate multibranch pipeline for each engineer. This is because Jenkins looks at one repository at a time along with its branches and open pull requests when making a multibranch pipeline.</p>
<p>So, in a nutshell, with the forking git workflow, Jenkins needs individual multibranch pipelines for each engineer to handle their repositories, branches, and pull requests separately (if you're using the forking workflow). That's why you were able to create a multibranch pipeline with your own repo.</p>

CC BY-SA 4.0
2023-11-29T16:47:00.667Z
2023-11-29T16:47:00.667Z
collin_tgz
<p>With traditional free-style jenkins jobs, you're limited to building only what is explicitly checked out by the build, which is typically main (or trunk if using svn). If you make a branch then you could duplicate the main job and change the checkout to get your branch instead of main. If you're branching infrequently then this might not be an issue but otherwise gets quite tedious!</p>
<p>With a multibranch pipeline, if a new branch has been created then a job will automatically be created for it and then run. This saves the overhead of manually creating them.</p>
<p>An excellent resource is the Jenkins book:
<a href="https://www.jenkins.io/doc/book/pipeline/" rel="nofollow noreferrer">https://www.jenkins.io/doc/book/pipeline/</a></p>

CC BY-SA 4.0
2022-03-18T15:44:54.500Z
2022-03-18T15:44:54.500Z
Craig
<p>Multi branch pipelines work great when your are using the git flow method: <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow" rel="nofollow noreferrer">https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow</a></p>
<p>We define one multi branch pipeline per application. There is one pipeline documentation for all branches. Based on the branch name different artifacts are build in the end.</p>
<ul>
<li>Main branch builds release artifacts. This could be replaced with builds on git Tag events. The release artifacts will be deployed by fixed version numbers to the test and production environment.</li>
<li>Develop branch builds Snapshot artifacts. Those will be deployed by using latest to the develop environment.</li>
<li>Feature branches build also Snapshot artifacts which can be deployed to the dev environment as well.</li>
</ul>
<p>All commit events on all branches run lint, unit test, SAST, dependency scan checks before the artifact is pushed to the artifactory. This guarantees that you don’t have to remediate a lot of findings after merging into the develop or main branch. Using different artifactories helps you reduce storage costs because you can just delete all Snapshot artifacts after 30 days.</p>
<p>Feel free to ask for specific details.</p>
<p>Cheers!</p>

CC BY-SA 4.0
2021-11-25T19:46:57.617Z
Thank you for your answer. I've been digging into a lot of different "git workflows" since reading it, and I am seeing many people saying it is an old idea that flopped for most teams. Does this mean a multi branch pipeline isn't recommended for most teams, along with the git flow method?
Here are some examples of what I'm talking about:
https://georgestocker.com/2020/03/04/please-stop-recommending-git-flow/
https://www.youtube.com/watch?v=_w6TwnLCFwA
https://georgestocker.com/2020/03/04/please-stop-recommending-git-flow/
collin_tgz
CC BY-SA 4.0
2022-03-18T15:38:51.360Z
Although they may work well together (for some people anyway), multibranch pipelines and gitflow are entirely separate.
Craig
CC BY-SA 4.0
2021-11-12T16:08:36.923Z
2021-11-12T16:08:36.923Z
aykes
<p>I'm messing around with a multibranch pipeline in jenkins. Currently we have zero pipelines in production and everything is using freestyle jobs which is very sloppy. I have my own multibranch pipeline using my name to get my branches, checking which ones have a Jenkinsfile. I'm sure there's no one great answer to this, but what is the general use of a multibranch pipeline? Do people create one per user? What is your current or your favorite setup for this?</p>
<p>If this isn't the place to ask a &quot;best practice&quot; question, please point me to a devops forum or somewhere that I might be able to ask this.</p>

<jenkins><jenkins-pipeline><continuous-integration><continuous-deployment><continuous-delivery>
What is the best practice for a multibranch pipeline configuration?
collin_tgz
# What is the best practice for a multibranch pipeline configuration?

(Asked by: username_0 on 2021-11-11)

I'm messing around with a multibranch pipeline in jenkins. Currently we have zero pipelines in production and everything is using freestyle jobs which is very sloppy. I have my own multibranch pipeline using my name to get my branches, checking which ones have a Jenkinsfile. I'm sure there's no one great answer to this, but what is the general use of a multibranch pipeline? Do people create one per user? What is your current or your favorite setup for this?

If this isn't the place to ask a "best practice" question, please point me to a devops forum or somewhere that I might be able to ask this.

**Tags:** jenkins, jenkins-pipeline, continuous-integration, continuous-deployment, continuous-delivery


---

## 3 answers

### Answer by username_0 on 2023-11-29. Score: 0 | Accepted answer

When using the [forking git workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow), each engineer has their own separate server-side repository. In Jenkins, to work with this setup, you'll need to create a separate multibranch pipeline for each engineer. This is because Jenkins looks at one repository at a time along with its branches and open pull requests when making a multibranch pipeline.

So, in a nutshell, with the forking git workflow, Jenkins needs individual multibranch pipelines for each engineer to handle their repositories, branches, and pull requests separately (if you're using the forking workflow). That's why you were able to create a multibranch pipeline with your own repo.


---

### Answer by username_1 on 2022-03-18. Score: 1

With traditional free-style jenkins jobs, you're limited to building only what is explicitly checked out by the build, which is typically main (or trunk if using svn). If you make a branch then you could duplicate the main job and change the checkout to get your branch instead of main. If you're branching infrequently then this might not be an issue but otherwise gets quite tedious!

With a multibranch pipeline, if a new branch has been created then a job will automatically be created for it and then run. This saves the overhead of manually creating them.

An excellent resource is the Jenkins book:
<https://www.jenkins.io/doc/book/pipeline/>


---

### Answer by username_2 on 2021-11-12. Score: 0

Multi branch pipelines work great when your are using the git flow method: <https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow>

We define one multi branch pipeline per application. There is one pipeline documentation for all branches. Based on the branch name different artifacts are build in the end.

* Main branch builds release artifacts. This could be replaced with builds on git Tag events. The release artifacts will be deployed by fixed version numbers to the test and production environment.
* Develop branch builds Snapshot artifacts. Those will be deployed by using latest to the develop environment.
* Feature branches build also Snapshot artifacts which can be deployed to the dev environment as well.

All commit events on all branches run lint, unit test, SAST, dependency scan checks before the artifact is pushed to the artifactory. This guarantees that you don’t have to remediate a lot of findings after merging into the develop or main branch. Using different artifactories helps you reduce storage costs because you can just delete all Snapshot artifacts after 30 days.

Feel free to ask for specific details.

Cheers!

> **Comments:**
> **username_0**: Thank you for your answer. I've been digging into a lot of different "git workflows" since reading it, and I am seeing many people saying it is an old idea that flopped for most teams. Does this mean a multi branch pipeline isn't recommended for most teams, along with the git flow method? Here are some examples of what I'm talking about: https://georgestocker.com/2020/03/04/please-stop-recommending-git-flow/ https://www.youtube.com/watch?v=_w6TwnLCFwA https://georgestocker.com/2020/03/04/please-stop-recommending-git-flow/  
> **username_1**: Although they may work well together (for some people anyway), multibranch pipelines and gitflow are entirely separate.  

---

