自定义按钮
支持在页面上配置自定义按钮,点击按钮触发执行流水线(仅支持触发 web_trigger 事件)。支持在页面上输入环境变量。
目前仅支持在分支详情页配置自定义按钮
# 自定义按钮配置
在仓库根目录下增加 .cnb/web_trigger.yml
文件用于配置自定义按钮。
# .cnb/web_trigger.yml
branch:
# 如下按钮在分支名以 release 开头的分支详情页面显示
- reg: "^release"
buttons:
- name: 按钮名1
# 如存在,则将作为流水线 title,否则流水线使用默认 title
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
,按钮描述。如存在,则将作为流水线 title,否则流水线使用默认 titleevent
: 必填,String
,事件名env
: 选填,Object<String, String>
,传给 web_trigger 事件流水线的环境变量inputs
: 选填,Object<String, Input>
,可手动输入的环境变量,对象的键值为变量名,Input
类型定义如下:description
:选填,String
,描述信息required
:选填,Boolean
,是否必填type
:选填,String
,输入框类型,可选input
、textarea
、select
,默认为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
流水线。