Manual Pipeline Trigger
About 752 wordsAbout 3 min
Cloud Native Build supports configuring custom buttons on the page to trigger pipeline execution (only supports triggering web custom events). It also supports entering environment variables on the page.
The effect is as follows:

Tips
Currently only supports custom buttons configured on the Code-Branch Details
page
Custom Button Configuration
Add a .cnb/web_trigger.yml
file in the repository root directory to configure custom buttons.
# .cnb/web_trigger.yml
branch:
# The following buttons appear on branch detail pages where branch name starts with release
- reg: "^release"
buttons:
- name: Button Name 1
# If exists, will be used as pipeline title, otherwise default title is used
description: Button Description
event: web_trigger_one # CI event name to trigger
# Permission control - if not configured, users with repository write permission can trigger builds
# If configured, requires repository write permission AND meeting either roles or users conditions
permissions:
# Can configure either roles or users or both - meeting either is sufficient
roles:
- owner
- developer
users:
- name1
- name2
# Environment variables
env:
a: 1
b: 2
# Input environment variables, can override above env variables
inputs:
# Currently supports three formats: input box (input), multi-line text box (textarea), dropdown box (select supports single and multiple selection)
# where key values (var1, var2, var3) are environment variable names
var1:
# Input box
description: Input Variable 1
required: true # Whether required
type: input
default: Default Value 1
var2:
# Text area
description: Input Variable 2
required: true
type: textarea
default: Default Value 2
var3:
# Single select dropdown
description: Input Variable 3
required: false
type: select
default: value1
options:
- name: Option 1
value: value1
description: Option 1 Description
- name: Option 2
value: value2
description: Option 2 Description
var4:
# Multi-select dropdown
description: Input Variable 3
required: false
type: select
# Whether to support multiple selection, results separated by commas
multiple: true
default: value1,value2
options:
- name: Option 1
value: value1
description: Option 1 Description
- name: Option 2
value: value2
description: Option 2 Description
- name: Option 3
value: value3
description: Option 3 Description
# The following buttons appear on branch detail pages where branch name starts with dev
- reg: "^dev"
buttons:
- name: Button Name 2
description: Button Description
event: web_trigger_two
- name: Button Name 3
description: Button Description
event: web_trigger_three
# The following custom buttons appear on all branch detail pages
- buttons:
- name: Button Name 4
description: Button Description
event: web_trigger_four
Currently only supports configuring custom buttons on branch detail pages. The key in yaml is branch
with array value. Array elements are defined as follows:
reg
: Optional,String
, regular expression for matching branch names (custom buttons inbuttons
only show on matched branches), if not specified matches all branchesbuttons
: Required,Array<Button>
, custom button definitions.Button
type defined as follows:name
: Required,String
, custom button namedescription
: Optional,String
, button description. If exists, will be used as pipeline title, otherwise default title is usedevent
: Required,String
, event nameenv
: Optional,Object<String, String>
, environment variables passed to web_trigger custom event pipelinepermissions
: Optional, permission control, meeting eitherusers
orroles
condition grants trigger permission (repository write permission also required). Ifpermissions
not configured, repository write permission is sufficientusers
: Optional,Array<String>
, username array. Can define multiple.roles
: Optional,Array<String>
, repository role array. Can define multiple repository roles.
inputs
: Optional,Object<String, Input>
, manually input environment variables, object keys are variable names,Input
type defined as follows:description
: Optional,String
, descriptionrequired
: Optional,Boolean
, whether requiredtype
: Optional,String
, input type, can beinput
,textarea
,select
, defaults toinput
default
: Optional,String
, default valuemultiple
: Optional,Boolean
, whether to support multiple selection, only valid when type=select
, results separated by commas. Individual optionvalue
should avoid commasoptions
: Optional,Array<Option>
, dropdown options whentype: select
.Option
type defined as follows:name
: Required,String
, option namevalue
: Required,String
, option value, used as environment variable valuedescription
: Optional,String
, option description
Custom web_trigger Pipeline
Custom buttons in .cnb/web_trigger.yml
only support triggering web_trigger events.
web_trigger
event pipelines are configured in .cnb.yml
# .cnb.yml
# Match branch names starting with release
release*:
# Events that custom buttons can trigger
web_trigger_one:
- stages:
- name: Output environment variables
script:
- echo $a
- echo $b
- echo $var1
- echo $var2
- echo $var3
# Match branch names starting with dev
dev*:
web_trigger_two:
- stages:
- name: Execute task
script: echo "job"
web_trigger_three:
- stages:
- name: Execute task
script: echo "job"
# Match all branch names
"**":
web_trigger_four:
- stages:
- name: Execute task
script: echo "job"
Permission Description
Only users with repository write permission
can click custom buttons to execute web_trigger
pipelines.