apply

coding-ci:apply

指定配置文件,绑定到当前 Git 仓库,执行指定事件流水线。

# 适用事件

all

# 参数

# config

  • type: String
  • required:

完整的 CI 配置文件内容

# configFrom

  • type: String
  • required:

指定一个本地文件 或 Coding Git 文件作为配置文件。

# event

  • type: String
  • required:
  • default: api_trigger

要执行的自定义事件名,必须为 api_trigger 或以 api_trigger_ 开头。

# sync

  • type: Boolean
  • required:
  • default: false

是否同步执行,

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

# continueOnBuildError

  • type: Boolean
  • required:
  • default: false

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

# ignoreGitStatus

  • type: Boolean
  • required:
  • default: false

是否忽略设置 git status

忽略后流水线将不会出现在 commit checks 中。

# 环境变量相关

当前 Job 可见的,业务定义的环境变量全部传递给新的流水线。

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

  • 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

# config 取值优先级

按以下顺序依次取值,取到为止:

  1. config
  2. configFrom
  3. 当前仓库 .coding-ci.yml
    1. 若在 merge_requestmergeable 事件中调用 apply 内置任务,取预合并后的配置文件
    2. 其他情况取当前分支配置文件

configFrom 支持的范围

  • 本地文件:如 ./coding-ci.yml
  • 远程 Coding Git 文件

# 输出结果

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

# 配置样例

master:
  push:
    - stages:
        - name: trigger
          type: coding-ci:apply
          options:
            configFrom: https://xxx.coding.net/p/xxx/d/xxx/git/tree/master/.coding-ci.yml
            event: api_trigger_test
master:
  push:
    - stages:
        - name: trigger
          type: coding-ci:apply
          options:
            configFrom: ./test/.coding-ci.yml
            event: api_trigger_test
master:
  push:
    - stages:
        - name: trigger
          type: coding-ci:apply
          options:
            config: |
              master:
                api_trigger_test: 
                - stages:
                  - name: test
                    script: echo test

            event: api_trigger_test
master:
  push:
    - stages:
        - name: trigger
          type: coding-ci:apply
          options:
            # 执行当前配置文件的其它事件
            event: api_trigger_test
  api_trigger_test:
    - stages:
        - name: test
          script: echo test
master:
  push:
    - stages:
        - name: trigger
          type: coding-ci:apply
          options:
            configFrom: https://xxx/.xxx.yml
            # event 非 api_trigger 或 api_trigger_ 开头,同步调用会失败
            event: API_TRIGGER_get_alpha
            sync: true