In the previous section a Jenkinsfile
which could be
checked into source control was implemented. This section covers the concept of
Multibranch Pipelines which build on the Jenkinsfile
foundation to provide
more dynamic and automatic functionality in Jenkins.
The Multibranch Pipeline project type enables you to implement different
Jenkinsfiles for different branches of the same project.
In a Multibranch Pipeline project, Jenkins automatically discovers, manages and
executes Pipelines for branches which contain a Jenkinsfile
in source control.
This eliminates the need for manual Pipeline creation and management.
To create a Multibranch Pipeline:
Click New Item on Jenkins home page.
Enter a name for your Pipeline, select Multibranch Pipeline and click OK.
Jenkins uses the name of the Pipeline to create directories on disk. Pipeline names which include spaces may uncover bugs in scripts which do not expect paths to contain spaces. |
Add a Branch Source (for example, Git) and enter the location of the repository.
Save the Multibranch Pipeline project.
Upon Save, Jenkins automatically scans the designated repository and creates
appropriate items for each branch in the repository which contains a
Jenkinsfile
.
By default, Jenkins will not automatically re-index the repository for branch additions or deletions (unless using an Organization Folder), so it is often useful to configure a Multibranch Pipeline to periodically re-index in the configuration:
Multibranch Pipelines expose additional information about the branch being
built through the env
global variable, such as:
Name of the branch for which this Pipeline is executing, for
example master
.
An identifier corresponding to some kind of change request, such as a pull request number
Additional environment variables are listed in the Global Variable Reference.
Organization Folders enable Jenkins to monitor an entire GitHub
Organization, Bitbucket Team/Project, GitLab organization, or Gitea organization and automatically create new
Multibranch Pipelines for repositories which contain branches and pull requests
containing a Jenkinsfile
.
Organization folders are implemented for:
GitHub in the GitHub Branch Source plugin
Bitbucket in the Bitbucket Branch Source plugin
GitLab in the GitLab Branch Source plugin
Gitea in the Gitea plugin
Please submit your feedback about this page through this quick form.
Alternatively, if you don't wish to complete the quick form, you can simply indicate if you found this page helpful?
See existing feedback here.