trigger

coding-ci:trigger

在当前仓库中,触发另外一个仓库的自定义事件流水线。

# 适用事件

all

# 参数

# token

  • type: String
  • required:

个人访问令牌。

判断有无目标仓库权限

# slug

  • type: String
  • required:

目标仓库的完整路径,如:team/group/repo

# event

  • type: String
  • required:

触发的自定义事件名,必须是 api_trigger 或 以api_trigger_ 开头。

需要目标仓库配置了对应事件的流水线,才可以触发。

# branch

  • type: String
  • required:

触发分支。默认为默认分支。

# env

触发目标仓库流水线时的环境变量。

默认值中有如下环境变量,用户无法覆盖

  • API_TRIGGER_REPO_SLUG,含义同 CI 默认环境变量中的 CODING_REPO_SLUG
  • API_TRIGGER_REPO_ID,含义同 CI 默认环境变量中的 CODING_REPO_ID
  • API_TRIGGER_USER,含义同 CI 默认环境变量中的 CODING_BUILD_USER
  • API_TRIGGER_BRANCH,含义同 CI 默认环境变量中的 CODING_BRANCH
  • API_TRIGGER_COMMIT,含义同 CI 默认环境变量中的 CODING_COMMIT
  • API_TRIGGER_COMMIT_SHORT,含义同 CI 默认环境变量中的 CODING_COMMIT_SHORT

# sync

  • type: Boolean
  • required:
  • default: false

是否同步执行,同步模式下会等待本次 trigger 流水线执行成功后,再执行下一个任务。

# continueOnBuildError

  • type: Boolean
  • required:
  • default: false

同步模式下,触发的流水线构建失败时,是否继续执行下个任务。

类型定义

TriggerEnv

{

  [key: string]: string

}

# 输出结果

{
    "code": 0,
    "success": true, // 是否成功触发构建
    "message": "success",
    "data": {
        "sn": "coding-ci-60-1547175336738"
    },
    "buildSuccess": true, // 触发的构建是否成功,此key仅在同步模式下存在
    "lastJobExports": {}, // 触发的流水线最后一个job导出的环境变量
}

# 配置样例

# 基本使用

在当前仓库触发一个仓库 master 分支的事件名为 api_trigger_test 的流水线。

该流水线配置文件使用仓库 master 分支的 .coding-ci.yml 文件。

使用访问令牌 $TOKEN 查询用户是否有仓库权限。

master:
  push:
    - stages:
        - name: trigger
          type: coding-ci:trigger
          imports: https://xxx/envs.yml
          options:
            token: $TOKEN
            slug: a/b
            branch: master
            event: api_trigger_test