Support for including default values in custom pipelines has been a highly requested feature. We are happy to announce that this feature is now live.
Providing a default value helps avoid errors when you manually trigger a custom pipeline. If you often rely on the same value for certain variables, it can be frustrating to get a failed build when you forget to specify the value or have a typo when providing the value. Having a pre-populated default value makes it convenient so you don’t have to type in the same value each time. Additionally, it can help other developers better understand the expected value for a variable.
Here is an example of a pipeline configuration showing how to assign ap-southeast-2
as the default region for this build.
pipelines:
custom:
custom-name-and-region:
- variables:
- name: Username
- name: Region
default: ap-southeast-2 # optionally provide a default value
- step:
script:
- echo "User name is $Username"
- echo "and they are in $Region"
When the pipeline is triggered, the user will be prompted to enter their username but the region value is pre-populated to be ap-southeast-2
Default variable values will also be used when you create a pipeline via API and value for a variable is not provide
In this example, variable Username
will have the provided value John
. Variable Region
is not provided so it will have the default value ap-southeast-2
.
curl -X POST -is -u username:password \
-H 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/my-workspace/my-repo/pipelines/ \
-d '
{
"target": {
"ref_type": "branch",
"type": "pipeline_ref_target",
"ref_name": "master"
},
"variables": [
{
"key": "Username",
"value": "John"
}
]
}'
When a custom pipeline is scheduled for execution, a default variable value will always be used if declared in the pipeline configuration. Otherwise, an empty string will be used as a value.
Additional documentation on using variables in custom pipelines can be found here. We hope you and your team find this extra flexibility helpful!
Happy coding!