trigger
cnb:trigger
在当前仓库中,触发另外一个仓库的自定义事件流水线。
# 适用事件
# 参数
# token
- type:
String
- required:
true
个人访问令牌。
新流水线触发者为令牌对应用户,会判断有无目标仓库权限。
# 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_ID
API_TRIGGER_PIPELINE_ID
,含义同 CI 默认环境变量中的CNB_PIPELINE_ID
API_TRIGGER_REPO_SLUG
,含义同 CI 默认环境变量中的CNB_REPO_SLUG
API_TRIGGER_REPO_ID
,含义同 CI 默认环境变量中的CNB_REPO_ID
API_TRIGGER_USER
,含义同 CI 默认环境变量中的CNB_BUILD_USER
API_TRIGGER_BRANCH
,含义同 CI 默认环境变量中的CNB_BRANCH
API_TRIGGER_COMMIT
,含义同 CI 默认环境变量中的CNB_COMMIT
API_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
自定义流水线标题
# 输出结果
{
"sn": "cnb-i5o-1ht8e12hi", // 构建号
"buildLogUrl": "http://xxx/my-group/my-repo/-/build/logs/cnb-i5o-1ht8e12hi", // 构建日志链接
"message": "success",
"buildSuccess": true, // 触发的构建是否成功,此key仅在同步模式下存在
"lastJobExports": {} // 触发的流水线最后一个job导出的环境变量
}
# 配置样例
# 基本使用
在当前仓库触发一个仓库 main
分支的事件名为 api_trigger_test
的流水线。
该流水线配置文件使用仓库 main
分支的 .cnb.yml
文件。
使用访问令牌 $TOKEN
查询用户是否有仓库权限。
main:
push:
- stages:
- name: trigger
type: cnb:trigger
imports: https://xxx/envs.yml
options:
token: $TOKEN
slug: a/b
branch: main
event: api_trigger_test