DEV Community

Michel Sánchez Montells
Michel Sánchez Montells

Posted on • Edited on

Parametrize Your Custom Bitbucket Pipeline With Variables

Bitbucket Pipelines provides a seamless integration for continuous integration and deployment (CI/CD) processes.

In this article, we'll go through the process of setting up a basic custom pipeline, using variables, and configuring default values for a smoother and more personalized workflow.

USE CASE

Sometimes we want to automate some amount of steps. Those steps will execute steps with different values.

One example I faced was to build automation for upgrading Postgres version.

The process consists of some regular steps. And the bitbucket pipeline may look like this:

pipelines: custom: - upgrade_postgres: - step: name: "some saving of old version" script: - ./dump_10.sh - step: name: "Some steps for raising up new version" script: - ./load_11.sh 
Enter fullscreen mode Exit fullscreen mode

The process consists of some regular steps that only differ on the version I want to upgrade from (10) and the version I want to upgrade to (11).

Instead of changing the bitbucket-pipeline file, for every iteration of upgrading version, we can use variables.

pipelines: custom: - variables: #list variable names under here - name: UP_PG_FROM default: '11' allowed-values: - '11' - '12' - '13' - '14' - name: UP_PG_TO default: '12' allowed-values: - '12' - '13' - '14' - '15' - upgrade_postgres: - step: name: "some saving of old version" script: - ./build_${UP_PG_FROM}.sh - step: name: "Some steps for raising up new version" script: - ./build_${UP_PG_TO}.sh 
Enter fullscreen mode Exit fullscreen mode

Notice that in this snipped we set up variables with a set of possible values using keyword allowed-values and default values with keyword default

And we use those values with the syntax ${variable name}

This example could lead you to this once you click on Run Pipeline:

Top comments (0)