合并YAML密钥

合并YAML密钥,yaml,gitlab-ci,Yaml,Gitlab Ci,我试图创建一个非常抽象的.yaml-配置,可以在不同的地方重用 现在看起来是这样的: .release: &release stage: release script: - docker tag $IMAGE_TESTING $IMAGE_RELEASE - docker push $IMAGE_RELEASE only: - master when: manual .amd64: &amd64 BASE_ARCH: 'amd6

我试图创建一个非常抽象的
.yaml
-配置,可以在不同的地方重用

现在看起来是这样的:

.release: &release
  stage: release
  script:
    - docker tag $IMAGE_TESTING $IMAGE_RELEASE
    - docker push $IMAGE_RELEASE
  only: 
    - master
  when: manual

.amd64: &amd64
    BASE_ARCH: 'amd64'

.debalike: &debalike
    FLAVOUR: 'debalike'

release_debalike_amd64:
  <<: *release
  variables:
    << : [*amd64, *debalike]
这是理想的行为

但是,是否可以避免在
release\u debalike\u amd64
中使用variables标签,并直接使用include锚定

类似于此(不起作用):

.release:&release
阶段:发布
脚本:
-docker标签$IMAGE\u测试$IMAGE\u发布
-docker推送$IMAGE\u发布
仅:
-主人
时间:手动
.amd64:&amd64
变量:
底拱:“amd64”
.debalike:&debalike
变量:
味道:'堕落'
发布amd64:

不幸的是没有。仅使用YAML锚和别名进行深度合并是不可能的

GitLab EE在10.5中引入了CI Include,在10.8中对其进行了增强,以实现CI作业的深度合并。我不认为它在这种特殊情况下会对您有所帮助,但您可以通过其他方式利用它,具体取决于您如何组织CI文件


有关include参数的更多信息,请参阅。

不幸的是,没有。仅使用YAML锚和别名进行深度合并是不可能的

GitLab EE在10.5中引入了CI Include,在10.8中对其进行了增强,以实现CI作业的深度合并。我不认为它在这种特殊情况下会对您有所帮助,但您可以通过其他方式利用它,具体取决于您如何组织CI文件


有关include参数的更多信息,请参阅。

谢谢您的建议!作为一个CE用户,包含不是一个选项。看来我不得不接受当前版本。谢谢你的建议!作为一个CE用户,包含不是一个选项。看来我必须接受当前版本。
.release:
    stage: release
    script:
        - 'docker tag $IMAGE_TESTING $IMAGE_RELEASE'
        - 'docker push $IMAGE_RELEASE'
    only:
        - master
    when: manual
.amd64:
    BASE_ARCH: amd64
.debalike:
    FLAVOUR: debalike
release_debalike_amd64:
    stage: release
    script:
        - 'docker tag $IMAGE_TESTING $IMAGE_RELEASE'
        - 'docker push $IMAGE_RELEASE'
    only:
        - master
    when: manual
    variables:
        BASE_ARCH: amd64
        FLAVOUR: debalike
.release: &release
  stage: release
  script:
    - docker tag $IMAGE_TESTING $IMAGE_RELEASE
    - docker push $IMAGE_RELEASE
  only: 
    - master
  when: manual

.amd64: &amd64
    variables:
        BASE_ARCH: 'amd64'

.debalike: &debalike
    variables:
        FLAVOUR: 'debalike'

release_debalike_amd64:
  <<: *release
  <<: [*amd64, *debalike]