Flow支持在流水线级别通过变量(variables)定义环境变量与变量组(variableGroups)关联的通用变量组进行定义和使用。这两种方式均可在YAML文件中实现。
环境变量示例
variableGroups: [<your-variable-groupid1>,<your-variable-groupid2>] # Pipeline级别变量组
variables: # Pipeline级别环境变量
- key: appname
value: myapp # 默认类型为字符串 String
- key: envname
type: String # 显示指定类型为字符串 String
value: DEV
- key: cloneDepth
type: Number # 显示指定类型为数字 Number
value: 1
- key: isGray
type: Boolean # 显示指定类型为布尔值 Boolean
value: true
- key: appnames
type: Object # 显示指定类型为对象数组 Object
value: ["app1","app2","app3"]
- key: releaseItems
type: Object # 显示指定类型为对象 Object
value: {"app1": { "codeUrl": "http://codeurl1.xxx", "repoUrl": "http://repourl1.xxx"}, "app2": { "codeUrl": "http://codeurl2.xxx", "repoUrl": "http://repourl2.xxx"}}
stages:
my_stage:
name: 构建阶段
jobs:
my_job:
name: 构建任务
steps:
my_step:
name: 执行命令
step: Command
with:
run: |
echo ${appname} # 输出 myapp
echo ${appnames} # 输出 ["app1", "app2", "appm"]
变量优先级
流水线环境变量支持两种设置方式:运行时输入和静态配置。
环境变量的优先级遵循以下两项原则:
运行时输入(包括手动运行配置弹窗、OpenAPI触发参数及Webhook触发参数)。
静态配置的优先级则遵循就近原则,依次为:步骤(step) > 流水线(pipeline,variables/variableGroups) > 用户界面配置(UI配置,变量/变量组)。
优先级 | 变量时机 | 变量配置方式 | 说明 |
优先级 | 变量时机 | 变量配置方式 | 说明 |
1 | 运行时输入 | 通过流水线页面手动运行配置弹窗、OpenAPI触发、Webhook触发等方式运行时输入覆盖。 | 不支持私密变量。 |
2 | YAML step | 部分 step 语法构建参数。 | 不支持私密变量,具体查看 流水线步骤 steps 说明。 |
3 | YAML pipeline | YAML 语法 variables 变量。 | 不支持私密变量。 |
4 | YAML pipeline | YAML 语法 variableGroups 关联变量组。 | 支持私密变量;多个通用变量组有同名 key 时,按关联顺序,排序靠后的叠加覆盖生效。 |
5 | UI 配置 | 流水线 变量和缓存 UI 页面上配置的变量。 | 支持私密变量。 |
6 | UI 配置 | 流水线 变量和缓存 UI 页面上配置关联的通用变量组。 | 支持私密变量;多个通用变量组有同名 key 时,按关联顺序,排序靠后的叠加覆盖生效。 |
详细说明
variables
流水线(Pipeline)级别环境变量支持配置多个变量。这些变量可以在当前流水线的所有阶段(stage)、任务(job)和步骤(step)中通过 ${key}
引用。在模板(template)模式的流水线中,还可以使用{{ .key }}
的方式引用,并作为流水线模板的渲染参数。具体说明,请参见template 语法实现流水线动态渲染。
variables[].key
必填。 环境变量 key 值,仅支持1-128位大小写英文字母、数字、下划线_,以字母开头,大小写敏感(且不能与系统环境变量重复)。
variables[].type
非必填。默认字符串 String。支持字符串 String、数字 Number、布尔值 Boolean 和对象 Object 四种类型。
variables[].value
必填。 环境变量默认 value 值。
variableGroups
关联通用变量组,支持关联多个通用变量组。当多个通用变量组有同名 key 时,按关联顺序,排序靠后的叠加覆盖生效。在本流水线所有阶段 stage、任务 job、步骤 step 下均可通过 ${key}
引用。
相关文档
- 本页导读 (1)
- 环境变量示例
- 变量优先级
- 详细说明
- 相关文档