9

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
doremi
  • 14,921
  • 30
  • 93
  • 148

1 Answers1

18

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
Community
  • 1
  • 1
doremi
  • 14,921
  • 30
  • 93
  • 148