环境变量 variables

更新时间:2025-01-23 02:14:52

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 时,按关联顺序,排序靠后的叠加覆盖生效。

说明

原则上,建议在流水线 YAML 中配置所有环境变量,以下两种场景除外:

  • 私密配置项

  • 运行时设置/选择变量。

在这两种情况下,请使用UI界面配置变量或关联通用变量组

详细说明

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)
  • 环境变量示例
  • 变量优先级
  • 详细说明
  • 相关文档