Expected a mapping or list of mappings for merging, but found scalar

最近,在将项目转移到CircleCI时,遇到了这样一个错误,经过调查发现都说可能的原因缩进的问题导致的,

例如:

definitions:
  steps:
    - step: &prepare-build-env
      name: Prepare build env

这里的name和- step 行之间应该有一个缩进,这里没有缩进,所以报错,如果改成如下形似:

definitions:
  steps:
    - step: &prepare-build-env
        name: Prepare build env

就可以解决问题了。

还有另外一种情况就是:在定义两个job时,如果定义的job连续出现两次,也会报同样的错误。有时候写config.yml时,可能复制其它的样例代码过来,在复制的过程中可能会导致这样的问题,

示例如下:

definitions1:
definitions2:
  steps:
    - step: &prepare-build-env
        name: Prepare build env

一般建议两个job的定义之间有一个空行,这样可以避免类似问题发生。

definitions1:
  steps:
    - step: &prepare-build-env
        name: Prepare build env

definitions2:
  steps:
    - step: &prepare-build-env
        name: Prepare build env

你可能感兴趣的:(ci/cd)