手动触发流水线

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

效果如下:

:::tip 目前仅支持在 代码-分支详情页 上配置的自定义按钮。 :::

自定义按钮配置

在仓库根目录下增加 .cnb/web_trigger.yml 文件用于配置自定义按钮。 注意 .cnb/web_trigger.yml 配置文件中不支持 includeimports 语法。

  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,值为数组格式,数组元素定义如下:

自定义 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 流水线。