如何将CircleCI yml中的命令分解为多行?

时间:2017-04-18 18:24:23

标签: yaml circleci

我有一个看起来像这样的CircleCI配置文件:

# 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

如何将docker run命令拆分为多行,如:

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

我已尝试将|运算符用于yaml,但CircleCI无法解析,因为它希望override成为列表。

# 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

1 个答案:

答案 0 :(得分:5)

使用这个answer详细说明了在yaml中多行分解字符串的各种方法,我能够推断出一个很好用的解决方案。

请注意>-部分中override运算符的使用。

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

这会生成一个很好的单行命令:

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