Как повторно использовать закрепленную запись под уже развернутой привязкой? - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь написать конфигурацию 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

Iхотел бы иметь возможность заменить:

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

но это тоже не сработало.

Как я могу это сделать?

1 Ответ

2 голосов
/ 25 сентября 2019

Согласно документации :

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

Однако имейте в виду, что функция объединения не является частью спецификации YAML и была определена только для устаревшей версии YAML 1.1.Я не знаю, реализовано ли это на самом деле.Даже если это так, имейте в виду, что этот ключ слияния является нечетным человеком - нарушая спецификацию, которая говорит, что каждый тег должен быть сопоставлен с типом, он вместо этого интерпретируется как инструкция преобразования, даже если процесс загрузки, как определено в спецификации, имеетнет места для выполнения шагов преобразования.

Подобная функциональность (например, для конкатенации скаляров) более или менее часто запрашивается в SO, но недоступна (и, вероятно, никогда не будет), и если вам нужно сделать что-то подобноеМой совет - делать то, что делают, например, Ansible и SaltStack, и использовать шаблонизатор в качестве препроцессора для вашего файла YAML.

...