自定义按钮

支持在页面上配置自定义按钮,点击按钮触发执行 CI 流水线(仅支持触发 web_trigger 事件)。支持在页面上输入环境变量。

目前仅支持在分支详情页配置自定义按钮

# 自定义按钮配置

在仓库根目录下增加 .cnb/web_trigger.yml 文件用于配置自定义按钮。

# .cnb/web_trigger.yml
branch:
  # 如下按钮在分支名以 release 开头的分支详情页面显示
  - reg: "^release"
    buttons:
      - name: 按钮名1
        description: 按钮描述
        event: web_trigger_one # 触发的 CI 事件名
        # 环境变量
        env:
          a: 1
          b: 2
        # 可输入环境变量,可覆盖上述 env 的变量配置
        inputs:
          # 目前支持以下三种格式:输入框(input)、多行文本输入框(textarea)、下拉选择框(select)
          var1:
            # 输入框
            description: 输入变量1
            required: true # 是否必填
            type: input
            default: 默认值1
          var2:
            # 输入框
            description: 输入变量2
            required: true
            type: textarea
            default: 默认值2
          var3:
            # 下拉选择框
            description: 输入变量3
            required: false
            type: select
            default: 默认值3
            options:
              - name: 选项1
                value: value1
              - name: 选项2
                value: value2

  # 如下按钮在分支名以 dev 开头的分支详情页面显示
  - reg: "^dev"
    buttons:
      - name: 按钮名2
        description: 按钮描述
        event: web_trigger_two
      - name: 按钮名3
        description: 按钮描述
        event: web_trigger_three

  # 如下自定义按钮在所有分支详情页面显示
  - buttons:
      - name: 按钮名4
        description: 按钮描述
        event: web_trigger_four

目前仅支持配置分支详情页面的自定义按钮,yaml 中键值为 branch,值为数组格式,数组元素定义如下:

  • reg: 选填,String,正则表达式,用于匹配分支名(仅匹配到的分支显示 buttons 配置的自定义按钮), 未填则匹配全部分支
  • buttons: 必填,Array<Button>,自定义按钮定义。Button 类型定义如下
    • name: 必填,String,自定义按钮名
    • description: 选填,String,按钮描述
    • event: 必填,String,事件名
    • env: 选填,Object<string, string>,传给 web_trigger 事件流水线的环境变量
    • inputs: 选填,Object<string, Input>,可手动输入的环境变量,对象的键值为变量名,Input 类型定义如下:
      • description:选填,String,描述信息
      • required:选填,Boolean,是否必填
      • type:选填,String,输入框类型,可选 inputtextareaselect,默认为 input
      • default: 选填,String,默认值
      • options: 选填,Array<Option>,当 type: select 时的下拉框选项。Option 类型定义如下:
        • name: 必填,String,选项名
        • value: 必填,String,选项值,作为环境变量值

# 自定义 web_trigger 流水线

.cnb/web_trigger.yml 中的自定义按钮,仅支持触发 web_trigger 事件。

web_trigger 事件流水线在 .cnb.yml 中配置

# .cnb.yml

# 匹配以 release 开头的分支名
release*:
  # 自定义按钮可触发的事件
  web_trigger_one:
    - stages:
        - name: 输出环境变量
          script:
            - echo $a
            - echo $b
            - echo $var1
            - echo $var2
            - echo $var3

# 匹配以 dev 开头的分支名
dev*:
  web_trigger_two:
    - stages:
        - name: 执行任务
          script: echo "job"

  web_trigger_three:
    - stages:
        - name: 执行任务
          script: echo "job"

# 匹配所有分支名
"**":
  web_trigger_four:
    - stages:
        - name: 执行任务
          script: echo "job"

# 权限说明

仅有 仓库写权限 的用户可点击自定义按钮执行 web_trigger 流水线