cnb:trigger
931 字约 3 分钟
cnb:trigger
在当前仓库中,触发指定仓库的自定义事件流水线(需要有触发对应仓库流水线的权限)。
适用事件
参数
以下列表先概览 cnb:trigger 的全部参数。
- token:个人访问令牌,用于校验触发权限
- slug:目标仓库完整路径,如
group/repo - event:触发的自定义事件名(
api_trigger或前缀) - branch:触发分支,默认目标仓库主分支
- sha:分支中的 CommitId,默认取最新提交
- env:传递给目标流水线的环境变量
- sync:是否同步执行,等待目标流水线成功
- continueOnBuildError:同步模式下目标流水线失败是否继续
- title:自定义目标流水线标题
各参数详细说明如下。
token
- type:
String - default: 环境变量 CNB_TOKEN
个人访问令牌。
新流水线触发者为令牌对应用户,会判断有无触发目标仓库流水线权限。
slug
- type:
String - required:
true
目标仓库的完整路径,如:group/repo。
event
- type:
String - required:
true
触发的自定义事件名,必须是 api_trigger 或以 api_trigger_ 开头。
目标仓库需配置对应分支、对应事件的流水线才能触发。
branch
- type:
String - required:
false
触发分支,默认为目标仓库主分支。
sha
- type:
String - required:
false
触发分支中的 CommitId,默认取 branch 的最新提交记录。
env
- type: TriggerEnv
- required:
false
触发目标仓库流水线时传递的环境变量。
默认值中有如下环境变量,用户无法覆盖:
API_TRIGGER_BUILD_ID,含义同 CI 默认环境变量中的CNB_BUILD_IDAPI_TRIGGER_PIPELINE_ID,含义同 CI 默认环境变量中的CNB_PIPELINE_IDAPI_TRIGGER_REPO_SLUG,含义同 CI 默认环境变量中的CNB_REPO_SLUGAPI_TRIGGER_REPO_ID,含义同 CI 默认环境变量中的CNB_REPO_IDAPI_TRIGGER_USER,含义同 CI 默认环境变量中的CNB_BUILD_USERAPI_TRIGGER_BRANCH,含义同 CI 默认环境变量中的CNB_BRANCHAPI_TRIGGER_COMMIT,含义同 CI 默认环境变量中的CNB_COMMITAPI_TRIGGER_COMMIT_SHORT,含义同 CI 默认环境变量中的CNB_COMMIT_SHORT
sync
- type:
Boolean - required:
false - default:
false
是否同步执行。同步模式下会等待本次 trigger 流水线执行成功后,再执行下一个任务。
continueOnBuildError
- type:
Boolean - required:
false - default:
false
同步模式下,触发的流水线构建失败时,是否继续执行下个任务。
title
- type:
String - required:
false
自定义流水线标题
类型定义
TriggerEnv
{
[key: String]: String | Number | Boolean
}输出结果
{
"sn": "cnb-i5o-1ht8e12hi", // 构建号
"buildLogUrl": "https://cnb.cool/<your-repo-slug>/-/build/logs/cnb-i5o-1ht8e12hi", // 构建日志链接
"message": "success",
"buildSuccess": true, // 触发的构建是否成功,此key仅在同步模式下存在
"lastJobExports": {} // 触发的流水线最后一个job导出的环境变量
}配置样例
基本使用
在当前仓库触发指定仓库 main 分支下事件名为 api_trigger_test 的流水线。
该流水线配置文件使用仓库 main 分支的 .cnb.yml 文件。
使用访问令牌 $TOKEN 查询用户是否有触发目标仓库流水线权限。
.cnb.yml
main:
push:
- stages:
- name: trigger
type: cnb:trigger
imports: https://cnb.cool/<your-repo-slug>/-/blob/main/xxx/envs.yml
options:
token: $TOKEN
slug: a/b
branch: main
event: api_trigger_test