如何在已解包的锚下重用锚定条目?

问题描述 投票:1回答:1

我正在尝试编写一个CircleCI配置,该配置将允许我重用整个列表/映射(?)条目及其属性。

具有以下内容:

image_definitions:
  docker:
    - &default_localstack_image
      image: localstack/localstack:0.10.3
      environment:
        KINESIS_LATENCY: 0
defaults_env: &defaults_env
  environment:
    PG_PORT: 5432
    PG_USER: root

我希望能够替换:

test: &test
  docker:
    - image: localstack/localstack:0.10.3
      <<: *defaults_env

带有类似内容:

test: &test
  docker:
    - *default_localstack_image
      <<: *defaults_env

但是它不能这样工作。

我也尝试过:

test: &test
  docker:
    - *default_localstack_image
      *defaults_env

但是那也不起作用。

我该怎么做?

continuous-integration yaml circleci
1个回答
2
投票

根据documentation

test: &test
  docker:
    - <<: [*default_localstack_image, *defaults_env]

但是,请注意,合并功能不是YAML规范的一部分,仅针对过时的YAML 1.1进行了定义。我不知道这是否真正实现。即使是这样,也要知道此合并键是一个奇怪的问题–违反了说明每个标签都将映射到一个类型的规范,即使规范定义的加载过程已将其解释为转换指令没有执行转换步骤的位置。

类似的功能(例如用于连接标量)在SO上或多或少被要求,但是不可用(可能永远不会),如果您需要执行类似的操作,我的建议是执行例如Ansible和SaltStack做并使用模板引擎作为YAML文件的预处理器。

© www.soinside.com 2019 - 2024. All rights reserved.