tencent cloud

云原生构建

动态与公告
产品动态
云原生构建社区版正式公测
产品简介
购买指南
计费概述
社区版计费说明
企业版计费说明
入门指引
开通使用
社区版快速入门
企业版安装使用指引
操作指南
个人中心
组织管理
代码仓库
云原生开发
云原生构建
制品管理
任务集
实践教程
常见问题
联系我们

常见问题

PDF
聚焦模式
字号
最后更新时间: 2025-08-07 15:41:29
本文提供了一些常见问题,也可以前往 feedback 中查看问题是否已经存在。若未能找到答案,请于 feedback 中提交 issue

流水线为什么没触发?

要定位流水线没触发问题,您需了解流水线从触发到执行的流程。
push 事件为例:
flowchart LR
commit(git commit) --> push(git push) --> config(CI 读取对应分支下 .cnb.yml) --> event(获取对应分支 push 事件配置) --> skip(skip 检测) --> 流水线执行
其中 skip 检测 包括 ifNewBranchifModify,可参考 语法
那么可以按照这个流程逐层检查:
1. 代码是否 push 到远端。
2. 对应分支是否有 .cnb.yml
3. 是否配了 push 事件流水线。
4. 是否命中了 skip 检测。

在本地正常,为什么在 CI 上运行失败了?

首先您需明确本地环境和 CI 环境的区别:

本地
CI 环境
网络
本地网络(例如一些办公内网)
CI 机器所在网络
文件
本地整个目录下所有文件
Git 仓库对应分支代码
环境
原生
指定的 Docker 容器环境
Shell
本地指定
sh
了解到差异,我们可以依次排查:
1. 是否访问了本地内网才能访问的资源。
2. 是否有文件未提交。
3. 构建依赖的文件是否命中 .gitignore
4. 本地运行相同的镜像,得到与 CI 相同的构建环境,进行调试。
云原生构建的默认镜像为 cnbcool/default-build-env。那么,我们可以执行下面命令,进入默认 CI 环境进行调试。
说明:
如果声明了其他镜像作为流水线构建环境,请将命令中 cnbcool/default-build-env 替换成对应镜像地址。
docker run --rm -it -v $(pwd):$(pwd) -w $(pwd) cnbcool/default-build-env sh

流水线执行脚本和登录调试执行脚本结果不一样,如何处理?

流水线里默认使用 sh,登录调试的是 bash。
如果确认指定的流水线容器是支持 bash 的(默认的流水线容器是支持的,但如果是自定义容器,可能不支持),可以把执行脚本改成 bash xxx.sh 或者 bash -c '{原来的语句}'

超时没有 log 输出如何处理?

一个 job 如果超过 10 分钟没有 log 输出,那么就会被终止掉。可以考虑增加 log,例如针对 npm install 的情况,可以加上 verbose 参数。
注意:
上述情况跟 job 的 timeout 声明的超时不一样,不能通过配置修改。

没改代码为什么流水线失败了?

可以检查依赖的其他资源是否有变动,例如:
插件任务声明镜像版本为 latest,镜像是否有变动。
CI 配置文件引用了其他仓库文件,被引用文件是否有变动。
有可能网络波动,Rebuild 试试。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈