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 取值优先级
按以下顺序依次取值,取到为止:
config
configFrom
- 当前仓库
.coding-ci.yml
- 若在
merge_request
、mergeable
事件中调用apply
内置任务,取预合并后的配置文件 - 其他情况取当前分支配置文件
- 若在
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