You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI 作业 artifacts 无法上传的可能原因有哪些?

GitLab CI 作业无Artifacts上传排查思路
  • 先定位触发阶段:搜索作业完整执行日志的Uploading artifacts关键词
    • 若无该关键词,说明Runner未触发上传逻辑,优先排查Runner配置、作业权限、规则拦截问题
    • 若出现该关键词但伴随No files to upload提示,说明路径匹配未命中任何符合要求的文件,优先排查文件路径与通配符配置
  • 验证文件存在性与路径合法性:
    • 在作业script段的最后一行添加ls -laR ${CI_PROJECT_DIR}命令,打印项目根目录下的完整文件结构,确认是否确实生成了.json后缀文件,以及文件的实际存放路径
    • 若作业配置了working_directory自定义工作目录,所有相对路径的通配符都会基于该目录匹配,而非默认的${CI_PROJECT_DIR},需确认路径匹配逻辑是否适配自定义目录
  • 排查配置规则冲突:
    artifacts:exclude规则优先级高于paths规则,检查是否配置了排除规则命中了需要上传的json文件
    • 检查作业是否通过extends继承了其他CI模板,或者存在全局artifacts配置,是否存在冲突的路径/排除规则覆盖了当前作业的配置
    • GitLab通配符遵循doublestar匹配规范,**/*.json才代表所有层级子目录下的json文件,单独使用**.json属于不规范写法,无法正常匹配嵌套目录下的文件
  • 排查Runner与权限问题:
    • 确认Runner版本与GitLab服务端版本兼容,过旧版本的Runner不支持在artifacts路径中解析${CI_PROJECT_DIR}这类环境变量,也存在通配符匹配的已知bug
    • 检查作业执行用户对生成的json文件是否有读权限,无读权限的文件会被Runner直接跳过,不会纳入artifacts
    • 检查项目设置中的最大artifacts大小限制,若待上传文件总大小超出限制会被服务端拦截
  • 特殊场景验证:
    • 若作业配置了dependencies、needs参数,确认是否存在逻辑异常导致当前作业的artifacts上传流程被跳过
    • 若使用Docker Runner,确认容器内生成的文件是否被挂载卷覆盖,或者未正确写入到${CI_PROJECT_DIR}路径下就被销毁

内容的提问来源于stack exchange,提问作者123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:48:01