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!

Introducing default values for custom pipeline variables