我想声明具有默认值的变量并在大厅资源中使用它
例如在 pipeline.yml 的开头,声明了以下变量。
PROJECT: hello-world
然后在资源/资源类型中使用它,例如
groups:
- name: ((PROJECT))
jobs:
- pull-request
- create-artifacts
现在出现类似错误
- groups.((PROJECT)): '((PROJECT))' is not a valid identifier: must start with a lowercase letter
实际上只有在设置管道时传递
--var PROJECT=hello-world
时才解析变量。
好奇;为什么它没有引用
pipeline.yml
中声明的变量
我不想在设置管道时传递任何额外的参数,想在 yml 本身中声明它。
请帮忙。
更新: 上面的问题是通过锚点和别名解决的,如下所示
PROJECT: &PROJECT hello-world
groups:
- name: *PROJECT
jobs:
- pull-request
- create-artifacts
但同样不适用于资源
REPOSITORY_NAME: &REPOSITORY_NAME hello-world-repo
resources:
- name: pull-request-branch
check_every: 1m
type: pull-request
icon: source-pull
source:
repo: cahcommercial/*REPOSITORY_NAME
请帮忙。
问题1:
PROJECT: &PROJECT hello-world
groups:
- name: *PROJECT
jobs:
- pull-request
- create-artifacts
Q2
REPOSITORY_NAME: &REPOSITORY_NAME
repo: owner/hello-world-repo
resources:
- name: pull-request-branch
check_every: 1m
type: pull-request
icon: source-pull
source:
<<: *REPOSITORY_NAME
但我仍然更喜欢从命令行传递变量是额外的强大选项。
https://concourse-ci.org/vars.html#static-vars
fly -t target set-pipeline --pipeline pipeline-name \
-c pipeline.yml \
-v PROJECT=hello-world \
然后在 pipeline.yml 中使用变量语法
groups:
- name: ((PROJECT))
jobs:
- pull-request
- create-artifacts