简化配置文件
YAML 高级语法
由于.cnb.yml配置文件是 YAML 格式,所以可以利用更多 YAML 特性(如锚点 & 、别名 * 和对象合并 << 符号)来简化配置文件。
一个简单的运用锚点和别名简化的例子如下:
1# pull_request 和 push 事件的流水线完全一致,这种方式可以减少重复
2.pipeline: &pipeline
3 docker:
4 image: node:22
5 stages:
6 - name: install
7 script: npm install
8 - name: test
9 script: npm test
10
11main:
12 pull_request:
13 - <<: *pipeline
14 push:
15 - <<: *pipeline
支持多级嵌套:
1.jobs: &jobs
2 - name: install
3 script: npm install
4 - name: test
5 script: npm test
6
7.pipeline: &pipeline
8 docker:
9 image: node:22
10 stages: *jobs
11
12main:
13 pull_request:
14 - <<: *pipeline
15 push:
16 - <<: *pipeline
:::tip
以上是 YAML 自带特性,仅在解析单个YAML文件时有效,不能跨文件使用。
:::
文件引用
为了方便复用流水线配置,云原生构建 实现了以下特性:
- include:可以跨文件引用流水线模板。
- imports:可以跨文件引用变量。
- optionsFrom:可以跨文件引用内置任务参数。
- settingsFrom:可以跨文件引用插件任务参数。
详细文件引用说明见 文件引用
变量引用
为了解决YAML锚点和别名不能跨文件使用的问题。云原生构建 实现了以下特性:
reference: 可以跨文件按属性路径引用变量。