手动触发流水线
云原生构建支持在页面上配置自定义按钮,点击按钮触发执行流水线(仅支持触发 页面自定义事件)。同时支持在页面上输入环境变量。
效果如下:

:::tip
目前仅支持在 代码-分支详情页 上配置的自定义按钮。
:::
自定义按钮配置
在仓库根目录下增加 .cnb/web_trigger.yml 文件用于配置自定义按钮。
注意 .cnb/web_trigger.yml 配置文件中不支持 include 和 imports 语法。
1# .cnb/web_trigger.yml
2branch:
3 # 如下按钮在分支名以 release 开头的分支详情页面显示
4 - reg: "^release"
5 buttons:
6 - name: 按钮名1
7 # 如存在,则将作为流水线 title,否则流水线使用默认 title
8 description: 按钮描述
9 event: web_trigger_one # 触发的 CI 事件名
10 # 权限控制,不配置则有仓库写权限的用户可触发构建
11 # 如果配置,则需要有仓库写权限,并且满足 roles 或 users 其中之一才有权限触发构建
12 permissions:
13 # roles 和 users 配置其中之一或都配置均可,二者满足其一即可
14 roles:
15 - owner
16 - developer
17 users:
18 - name1
19 - name2
20 # 环境变量
21 env:
22 # 默认传入的环境变量,其中 key 值(a,b,c)为环境变量名,支持如下两种格式
23 a: 1
24 b: 2
25 c:
26 # 环境变量别名
27 name: 变量c
28 # 环境变量值
29 value: 3
30 # 可输入环境变量,可覆盖上述 env 的变量配置
31 inputs:
32 # 目前支持以下三种格式:输入框(input)、多行文本输入框(textarea)、下拉选择框(select 支持单选和多选),switch 开关
33 # 其中 key 值(var1、var2、var3、var4、var5)为环境变量名
34 var1:
35 # 输入框
36 name: 变量1
37 description: 输入变量1
38 required: true # 是否必填
39 type: input
40 default: 默认值1
41 var2:
42 # 输入框
43 name: 变量2
44 description: 输入变量2
45 required: true
46 type: textarea
47 default: 默认值2
48 var3:
49 # 单选下拉选择框
50 name: 变量3
51 description: 输入变量3
52 required: false
53 type: select
54 default: value1
55 options:
56 - name: 选项1
57 value: value1
58 description: 选项1描述
59 - name: 选项2
60 value: value2
61 description: 选项2描述
62 var4:
63 # 多选下拉选择框
64 name: 变量4
65 description: 输入变量4
66 required: false
67 type: select
68 # 是否支持多选,多选结果用分号分隔
69 multiple: true
70 default: value1,value2
71 options:
72 - name: 选项1
73 value: value1
74 description: 选项1描述
75 - name: 选项2
76 value: value2
77 description: 选项2描述
78 - name: 选项3
79 value: value3
80 description: 选项3描述
81 var5:
82 # switch 开关
83 name: 变量5
84 description: 选择变量5
85 required: false
86 type: switch
87 default: value1
88 options:
89 - name: 选项1
90 value: value1
91 description: 选项1描述
92 - name: 选项2
93 value: value2
94 description: 选项2描述
95
96 # 如下按钮在分支名以 dev 开头的分支详情页面显示
97 - reg: "^dev"
98 buttons:
99 - name: 按钮名2
100 description: 按钮描述
101 event: web_trigger_two
102 - name: 按钮名3
103 description: 按钮描述
104 event: web_trigger_three
105
106 # 如下自定义按钮在所有分支详情页面显示
107 - buttons:
108 - name: 按钮名4
109 description: 按钮描述
110 event: web_trigger_four
目前仅支持配置分支详情页面的自定义按钮,yaml 中键值为 branch,值为数组格式,数组元素定义如下:
reg: 选填,String,正则表达式,用于匹配分支名(仅匹配到的分支显示buttons配置的自定义按钮), 未填则匹配全部分支buttons: 必填,Array<Button>,自定义按钮定义。Button类型定义如下name: 必填,String,自定义按钮名description: 选填,String,按钮描述。如存在,则将作为流水线 title,否则流水线使用默认 titleevent: 必填,String,事件名env: 选填,Object<String, String|EnvType>,传给 web_trigger 自定义事件流水线的默认环境变量,不支持编辑。 对象键值为环境变量名; 对象值支持两种格式,String和EnvType。EnvType类型定义如下:name: 必填,String,环境变量别名。非传给流水线的环境变量名value: 必填,String,环境变量值
permissions: 选填,权限控制,满足users或roles其中之一即有权限触发构建(还需要有仓库写权限)。如果未配置permissions,则有仓库写权限即可出发构建users: 选填,Array<String>,用户名数组。可定义多个。roles: 选填,Array<String>,仓库角色数组。可定义多种仓库角色。owner(负责人)、master(管理员Administrator)、developer(开发者)、reporter(助手)、guest(访客)
inputs: 选填,Object<String, Input>,可手动输入的环境变量,对象的键值为变量名,Input类型定义如下:description:选填,String,描述信息required:选填,Boolean,是否必填type:选填,String,输入框类型,可选input、textarea、select、switch,默认为inputdefault: 选填,String,默认值multiple: 选填,Boolean,是否支持多选,仅当 type=select时有效,多选结果用分号分隔。单个选项的value中需避免出现逗号options: 选填,Array<Option>,当type: select或type: switch时的选项。Option类型定义如下:name: 必填,String,选项名value: 必填,String,选项值,作为环境变量值description: 选填,String,选项描述信息
自定义 web_trigger 流水线
.cnb/web_trigger.yml 中的自定义按钮,仅支持触发 web_trigger 事件。
web_trigger 事件流水线在 .cnb.yml 中配置
1# .cnb.yml
2
3# 匹配以 release 开头的分支名
4release*:
5 # 自定义按钮可触发的事件
6 web_trigger_one:
7 - stages:
8 - name: 输出环境变量
9 script:
10 - echo $a
11 - echo $b
12 - echo $var1
13 - echo $var2
14 - echo $var3
15
16# 匹配以 dev 开头的分支名
17dev*:
18 web_trigger_two:
19 - stages:
20 - name: 执行任务
21 script: echo "job"
22
23 web_trigger_three:
24 - stages:
25 - name: 执行任务
26 script: echo "job"
27
28# 匹配所有分支名
29"**":
30 web_trigger_four:
31 - stages:
32 - name: 执行任务
33 script: echo "job"
权限说明
仅有 仓库写权限 的用户可点击自定义按钮执行 web_trigger 流水线。