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

dor*_*emi 3 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
Run Code Online (Sandbox Code Playgroud)

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

docker run \
-e VAR1=$VAR! \
-e VAR2=$VAR2 \
-e $VAR3-$VAR3 \
--entrypoint python my_image:latest \
-m unittest discover -v -s test
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用|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
Run Code Online (Sandbox Code Playgroud)

dor*_*emi 6

使用这个答案详细说明了在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
Run Code Online (Sandbox Code Playgroud)

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

docker run -e VAR1=$VAR! -e VAR2=$VAR2 -e $VAR3-$VAR3 --entrypoint python my_image:latest -m unittest discover -v -s test
Run Code Online (Sandbox Code Playgroud)