【问题标题】:How to extend a common array in yaml如何在yaml中扩展一个公共数组
【发布时间】:2020-07-25 05:57:21
【问题描述】:

我希望生成的 yaml 是这样的:

job:
  extends:
    - .common
    - .unique

我要DRY,所以我把共同的部分提取出来:

.extend_common: &extend_common
  extends:
    - .common

现在我想把它放在一起:

job:
  <<: *extend_common
    - .unique

但这不是有效的 yaml。我进行了一些搜索,但没有找到解决方案。这在yaml中可能吗?什么是不需要更多代码重复的正确语法?

【问题讨论】:

    标签: gitlab yaml


    【解决方案1】:

    YAML merge key 不是特殊语法,只是具有特殊语义的映射中的键。因此,它不能按顺序工作。

    YAML 不是一种编程语言,通常不具备此类功能。甚至合并键也是一个可选扩展,并非所有实现都支持(并为过时的 YAML 1.1 指定)。

    您可以使用 Jinja2 之类的模板引擎来预处理您的 YAML。这是 Ansible 和 SaltStack 等工具常用的解决方案。

    【讨论】:

      猜你喜欢
      • 2013-10-30
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多