如何分析yaml代码重复与小差异?

时间:2018-02-04 07:05:13

标签: yaml circleci

以下yaml重复相同的块,只有很小的差异。

 jobs:
    "python2":
      steps:
        - checkout
        - run:
            name: make check
            command: >
               virtualenv -p $(which python2.7) venv
               && make check

    "python3":
      steps:
        - checkout
        - run:
            name: make check
            command: >
               virtualenv -p $(which python3.6) venv
               && make check

在两个块之间只有一个子串(python二进制名称python2.7与python3.6)在嵌套值上不同。

避免重复此代码的最佳方法是什么?

虽然anchors and extend看起来很有希望,但是not able to use以下yaml阻止了circle-ci config file

steps: &commonSteps
  - checkout
  - run:
    name: make check
    command: ""


version: 2
jobs:
  "python2":
     <<: *commonSteps

如果有人有兴趣,这是{{3}}

1 个答案:

答案 0 :(得分:-1)

删除差异。

不是在一个步骤中设置Python版本,而是在CircleCI配置中为该版本的Python使用适当的Docker镜像。然后,步骤将是相同的,并且可以使用YAML锚点/别名。