Skip to content

内置任务

CNB 云原生构建提供了一系列内置任务,可在流水线中直接使用。

总览

内置任务按命名空间组织:

docker

  • cache -- 构建 Docker 镜像缓存,加速依赖安装

cnb

  • await-resolve -- 等待/通知机制,多流水线协作
  • apply -- 触发同仓库下的子流水线
  • trigger -- 触发指定仓库下的子流水线
  • read-file -- 导出文件内容为环境变量
  • destroy-token -- 销毁流水线 CNB_TOKEN

vscode

  • go -- 控制云原生开发环境可用时机

git

  • reviewer -- PR 自动添加评审人
  • auto-merge -- PR 自动合并
  • issue-update -- 更新 Issue 状态
  • release -- 仓库发布 Release
  • pr-commit-message-preset -- 预先设置 PR 的提交信息
  • pr-update -- 更新 PR 的标题、标签

testing

  • coverage -- 单测覆盖率上报

artifact

  • remove-tag -- 删除 CNB 制品标签

tapd

  • status-update -- 更新 TAPD 关联项状态
  • comment -- 提交 TAPD 关联项评论

knowledge

  • update -- 构建仓库的文档、Issue 等,并将其上传到知识库中

npc

  • go -- 执行 NPC 任务

详细说明

docker:cache

构建 Docker 镜像缓存,避免重复下载依赖。

参数:

  • dockerfile:Dockerfile 路径
  • by:声明缓存构建过程中依赖的文件列表
  • versionBy:用于版本控制
  • buildArgs:构建参数
  • target:对应 docker build 的 --target 参数
  • sync:是否等待 docker push 成功后才继续
  • ignoreBuildArgsInVersion:版本计算是否忽略 buildArgs

cnb:await-resolve

等待/通知机制,用于多流水线协作。支持死锁检测。

参数:

  • key:等待/通知的标识
  • data:传递的数据

cnb:apply

触发同仓库下的子流水线。

参数:

  • config:流水线配置
  • configFrom:从文件读取配置
  • event:触发事件
  • sync:是否同步执行
  • continueOnBuildError:构建失败时是否继续
  • title:构建标题

配置优先级:config > configFrom > .cnb.yml

cnb:trigger

触发指定仓库下的子流水线(需要权限)。

参数:

  • token:访问令牌
  • slug:仓库路径
  • event:触发事件
  • branch:分支名
  • sha:commit hash
  • env:环境变量
  • sync:是否同步执行
  • continueOnBuildError:构建失败时是否继续
  • title:构建标题

cnb:read-file

读取文件内容并导出为环境变量。支持 .json.yml.yaml、纯文本(key=value)格式。

参数:

  • filePath:文件路径

cnb:destroy-token

预销毁 CNB_TOKEN,降低滥用风险。无参数。

vscode:go

控制云原生开发环境何时可用。

适用事件: vscode, branch.create, api_trigger, web_trigger

git:auto-merge

自动合并 PR。

参数:

  • mergeType:合并类型(merge/squash/rebase/auto)
  • mergeCommitMessage:合并提交信息
  • mergeCommitFooter:合并提交 footer
  • removeSourceBranch:是否删除源分支
  • ignoreAssignee:是否忽略指派人
  • allowAssigneeApprovedMerge:是否允许指派人批准后合并

git:issue-update

更新 Issue 状态(关闭/打开)、标签、指派人。

参数:

  • fromText:从文本解析
  • fromFile:从文件解析
  • state:状态(open/close)
  • label:标签
  • assignee:指派人
  • when:触发条件
  • lint:链接
  • defaultColor:默认颜色
  • prefix:前缀

git:reviewer

为 PR 添加/移除评审人或指派人。

参数:

  • type:类型
  • reviewers:评审人列表
  • count:数量
  • exclude:排除列表
  • reviewersConfig:评审人配置
  • role:角色
  • skip_on_wip:WIP 时跳过

git:release

发布 Release。

参数:

  • overlying:叠加
  • tag:标签
  • title:标题
  • description:描述
  • descriptionFromFile:从文件读取描述
  • preRelease:是否预发布
  • latest:是否设为最新

git:pr-commit-message-preset

预设 PR 提交信息。

参数:

  • message:提交信息

git:pr-update

更新 PR 标签和标题。

参数:

  • fromText:从文本解析
  • fromFile:从文件解析
  • label:标签
  • title:标题
  • defaultColor:默认颜色

testing:coverage

上报单元测试覆盖率。支持 json, json-summary, lcov, jacoco, golang 格式。

参数:

  • key:标识
  • name:名称
  • pattern:文件匹配模式
  • lines:行覆盖率
  • diffLines:差异行覆盖率
  • allowExts:允许的扩展名
  • lang:语言
  • breakIfNoCoverage:无覆盖率时是否中断

artifact:remove-tag

删除 CNB 制品标签(Docker 和 Helm)。

参数:

  • name:制品名
  • tags:标签列表
  • type:制品类型

tapd:status-update

更新 TAPD 工作项状态。

参数:

  • status:目标状态
  • when:触发条件
  • type:工作项类型
  • fromText:从文本解析
  • fromFile:从文件解析

tapd:comment

为 TAPD 工作项添加评论。

参数:

  • comment:评论内容
  • when:触发条件
  • type:工作项类型
  • fromText:从文本解析
  • fromFile:从文件解析

knowledge:update

构建仓库文档和 Issue 到知识库。

参数:

  • include:包含的文件(Glob 模式)
  • exclude:排除的文件(Glob 模式)
  • chunkSize:分块大小
  • chunkOverlap:分块重叠大小
  • embeddingModel:嵌入模型
  • issueSyncEnabled:是否同步 Issue
  • issueState:Issue 状态
  • issueLabels:Issue 标签
  • issueExcludeLabels:排除的 Issue 标签
  • forceRebuild:是否强制重建
  • ignoreProcessFailures:是否忽略处理失败

npc:go

在指定 Docker 镜像中执行 AI 任务。

参数:

  • role:角色
  • systemPrompt:系统提示词
  • userPrompt:用户提示词
  • maxTurns:最大轮次