Note
This topic is part of the process of creating a multibranch pipeline. For more information see Creating Multibranch Pipelines.
In Pipelines DSL, the term {{gitBranch}} can be used as a placeholder for whatever branch the pipeline was loaded from. When Pipelines syncs from the pipeline source, it automatically replaces any occurrence of {{gitBranch}} with the name of the branch. Note that this will occur for single branch pipeline sources as well as multbranch ones).
When creating a multibranch pipeline in Pipelines DSL, use {{gitBranch}} as the value anywhere you would designate a branch. When Pipelines syncs each of the branches of a multibranch pipeline source, it will automatically replace the {{gitBranch}} reference in each branch's pipeline with the name of its branch.
In the GitRepo resource definition, use {{gitBranch}} where you define the branches of that resource to include.
pipelines_resources.yml
resources:
- name: appRepo
type: GitRepo
configuration:
gitProvider: my_github
path: myrepo/myproject
branches:
include: ^{{gitBranch}}$ # Formatted as a regex pattern
You can also use{{gitBranch}} anywhere you might refer to a branch in steps or pipeline configuration. This example pipeline outputs the name of the branch.
pipelines_steps.yml
pipelines:
- name: multibranch_example
steps:
- name: mb_step_1
type: Bash
configuration:
affinityGroup: together
inputResources:
- name: appRepo
execution:
onExecute:
- echo "running test for branch {{gitBranch}}"
- pushd $res_tw_multibranch_repo_resourcePath
- ls -latr
- popd
- name: mb_step_2
type: Bash
configuration:
affinityGroup: together
inputSteps:
- name: mb_step_1
execution:
onExecute:
- echo "building {{gitBranch}}"
Note
When used in a conditional or comparison logic, {{gitBranch}} placeholders must be wrapped within double quotes.
Example: {{ if eq "{{gitBranch}}" "master" }}