661 字约 2 分钟
什么是内置任务
一条流水线(Pipeline)由多个任务(Job)(在新窗口打开)组成。 当任务要做的是 CI/CD 中的通用动作——比如修改 PR 的评审人、关闭 Issue、 上报单测覆盖率——就不必自己写脚本、也不必去找插件镜像: 内置任务由云原生构建直接提供,只需在 .cnb.yml 里声明任务类型和参数即可使用。
内置任务解决的问题:
- 免写脚本:常见 CI/CD 动作开箱即用,无需维护 Shell 脚本或插件镜像
- 免配置凭据:在平台内部完成操作,无需自行申请和传递 Token
- 结果可传递:任务结果可通过
exports导出为环境变量,供后续任务使用
使用方法
内置任务通过 Stage 的 type 字段指定,格式为 <分类>:<任务名>(如 git:reviewer、docker:cache), 参数通过 options 传入,任务结果通过 exports 导出为环境变量供后续任务使用。
.cnb.yml
main:
pull_request:
- stages:
- name: 随机添加一位评审人
type: git:reviewer
options:
type: add-reviewer-from-repo-members
exports:
reviewersForAt: REVIEWERS_FOR_AT
- name: 通知评审人
script: 'echo "please review: $REVIEWERS_FOR_AT"'上述示例中,type 指定任务、options 传参、exports 导出结果。
任务列表
下面按分类列出全部内置任务,点击进入对应任务的详细说明。
Docker
- docker:cache:构建 Docker 镜像缓存,加速依赖安装
cnb
- cnb:await-resolve:等待/通知机制,多流水线协作
- cnb:apply:触发当前仓库下的其他流水线
- cnb:trigger:触发指定仓库下的流水线
- cnb:read-file:导出文件内容为环境变量
- cnb:destroy-token:销毁流水线 CNB_TOKEN
vscode
- vscode:go:控制云原生开发环境可用时机
git
- git:reviewer:PR 自动添加评审人
- git:auto-merge:PR 自动合并
- git:issue-update:更新 Issue 状态
- git:release:仓库发布 Release
- git:pr-commit-message-preset:预先设置 PR 的提交信息
- git:pr-update:更新 PR 的标题、标签
testing
- testing:coverage:单测覆盖率上报
artifact
- artifact:remove-tag:删除 CNB 制品标签
tapd
- tapd:status-update:更新 TAPD 关联项(story、task 或 bug)状态
- tapd:comment:提交 TAPD 关联项(story、task 或 bug)评论
knowledge
- knowledge:update:构建仓库的文档、Issue 等,并将其写入知识库中
npc
- npc:go:执行 NPC 任务