我的父文件:
.dev_vars: &dev_vars {}
deploy-dev:
variables:
<<: *dev_vars
script:
- echo "URL=$URL"
我的孩子档案:
include:
- project: 'ci-parent'
ref: 'main'
file:
- my-gitlab-ci.yml
.dev_vars: &dev_vars
URL: http://my-dev_url
URL 值为空,我希望它是 http://my-dev_url
https://docs.gitlab.com/ee/ci/yaml/yaml_optimization.html#anchors
使用时不能跨多个文件使用 YAML 锚点 包括关键字。锚点仅在定义它们的文件中有效 在.
是因为先渲染父文件,然后包含在子文件中。
因此,最终渲染的
.gitlab-ci.yml
看起来像这样:
".dev_vars":
URL: http://my-dev_url
deploy-dev:
variables: {}
script:
- echo "URL=$URL"
要在不触及结构的情况下解决问题,可以使用全局变量:
子文件:
include:
- project: 'ci-parent'
ref: 'main'
file:
- my-gitlab-ci.yml
variables:
URL: http://my-dev_url