在 .gitlab-ci.yml 中用 artifacts 块声明 paths 指定相对根目录的产物路径(如 dist/、build/app.jar),支持通配符但避免过度匹配,设 expire_in 控制保留时间(如 7 days 或 never),用于人工下载、下游作业 dependencies 传递或 api 自动获取;artifacts 用于阶段间传递结果,cache 用于跨流水线复用依赖。

直接在 .gitlab-ci.yml 里用 artifacts 块声明要保存的文件路径,GitLab 就会自动上传、存储,并支持下载或传递给下游作业。
明确指定要归档的路径
在生成文件的作业(比如 build)中,用 paths 列出相对项目根目录的文件或目录:
- 只写真正需要的产物,例如
- dist/或- build/app.jar - 支持通配符,如
- logs/*.log,但避免**/*这类宽泛匹配,防止体积过大 - 路径必须在项目工作目录内,不能超出
$CI_PROJECT_DIR
设置保留时间防止堆积
默认保留 30 天,建议按需缩短:
- 测试构建可用
expire_in: 7 days - 发布版本可设为
expire_in: never(需管理员开启权限) - 时间格式支持
1 hour、3 weeks、1 year等
让产物可用于下载或传递
归档后有三种典型用法,配置方式一致,使用场景不同:
- 人工查看:流水线运行完,在 GitLab Web 页面点对应 job → “Download artifacts” 按钮,获得 ZIP 包
- 传给下游作业:在后续 job 中加
dependencies: [build],GitLab 会在作业启动前自动解压到当前目录 - 自动化获取:调用
/jobs/:id/artifactsAPI,配合PRIVATE-TOKEN下载二进制流
区分 Artifacts 和 Cache
别把它们混用:
- Artifacts 是阶段间传递结果用的,存 GitLab 服务器,生命周期短,绑定单次流水线
-
Cache 是加速重复操作用的(如
node_modules),存在 Runner 本地或对象存储,跨流水线复用 - 编译产物、测试报告、安装包属于 Artifacts;依赖包缓存属于 Cache











