Friday, May 3, 2019

yaml - How to break up command in CircleCI yml to multiple lines?




I have a CircleCI configuration file that looks like so:



# Customize test commands

test:
override:
- docker run -e VAR1=$VAR! -e VAR2=$VAR2 -e $VAR3-$VAR3 --entrypoint python my_image:latest -m unittest discover -v -s test


How can I break up the docker run command into multiple lines like:



docker run \
-e VAR1=$VAR! \
-e VAR2=$VAR2 \

-e $VAR3-$VAR3 \
--entrypoint python my_image:latest \
-m unittest discover -v -s test


I've tried using the | operator for yaml, but CircleCI was unable to parse because it expects override to be a list.



# Customize test commands
test:
override: |

docker run \
-e VAR1=$VAR! \
-e VAR2=$VAR2 \
-e $VAR3-$VAR3 \
--entrypoint python my_image:latest \
-m unittest discover -v -s test

Answer



Using this answer which details the various ways to break up a string over multiple lines in yaml, I was able to deduce a solution which works nicely.




Note the use of the >- operator in the override section.



test:
override:
- >-
docker run
-e VAR1=$VAR!
-e VAR2=$VAR2
-e $VAR3-$VAR3
--entrypoint python my_image:latest

-m unittest discover -v -s test


This generates a nice single-line command of:



docker run -e VAR1=$VAR! -e VAR2=$VAR2 -e $VAR3-$VAR3 --entrypoint python my_image:latest -m unittest discover -v -s test

No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...