Bitbucket Pipeline Hack: Wrapping multiline script command

I had a really long command in my pipeline file, and being a programmer I can't tolerate anything longer than 120 columns (it was 80, but with modern screen real estate I think 120 is good number).

This is how my file looked like,

Screenshot 2020-02-03 at 10.54.11 AM.png

As you can see my really long command is going pass editor screen. So, how do we wrap this?

bitbuket-pipeline.yml file is YAML file, and after visiting and reading RFC for YAML, I had a eureka moment. The magical symbol is '>-' for non white space multiple lines.

So my file now look like this,

Screenshot 2020-02-03 at 11.00.36 AM.png

Isn't it more beautiful?

 

3 comments

jjmontgo November 21, 2020

The newlines get stripped out and your echo statement ends up displaying just 1 line.

How would I preserve the newlines?

Like DPKJ likes this
Josia December 9, 2020

https://yaml-multiline.info/ helps a lot with styling multiline yaml entries

Like # people like this
Jason Harrison July 12, 2021

If you want to have more than one command in your script you can start up the next command with a "-" prefix after the last newline:

pipelines: default:
- step:
name: Run Default Unit Tests
caches:
-
pip
script:
-
./scripts/bitbucket-log-time-and-version.bash
-
>- if [ -z "${ENV_I2LStaging_base64}" ]; then
echo "ENV_I2LStaging_base64 is not set or empty!";

exit 1;

fi

-
echo $ENV_I2LStaging_base64 | base64 --decode --ignore-garbage > .env
-
./scripts/bitbucket-install-python-packages.bash --run-unit-tests
-
./scripts/bitbucket-run-benchmark.bash
-
./scripts/bitbucket-log-time-and-version.bash. 
Like # people like this

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events