Saturday, 20 August 2016

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

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...