中级第 5 / 11 节30 分钟 · 实操
工件 (artifacts) 和缓存 (caches)
GitLab CI 课程的一部分
流水线里的每个作业都从仓库的一次干净检出开始,跑在一个用完即弃的环境里,作业一结束这个环境就被扔掉。这是有意为之的设计,正是它保证了一个作业不会悄悄依赖另一个作业留下的残余状态。但它也带出一个明摆着的问题:如果某个作业编译出了一个二进制文件,或者产出了一份测试报告,或者下载了一个花两分钟才拉完的依赖目录,等这个作业的容器消失之后,这些东西去哪儿了?除非你明确告诉 GitLab 要留住某样东西,否则答案是哪儿也没去,它随着那个作业用完即弃的文件系统里的其他一切一起被删掉了。对于“把这个留住”,GitLab 给了你两种不同的工具,而这一课的全部要点就是:它们解决的是两个不同的问题,尽管两者的 YAML 写法看上去几乎一模一样。
设想一条流水线,每个工位上的工人一下班,工位连同上面的材料就被清得干干净净,除非有人事先专门把某样东西装箱交给下一个工位。GitLab 作业的文件系统就是这样。一个 build 作业可能跑两分钟,编译出一个程序,写进 dist/ 目录;可是这个作业的脚本一执行完,它的整个环境,包括 dist/,就没了。后面 test 阶段想运行这个编译好的程序,是从零开始的,根本不知道曾经有过 dist/,除非 build 作业明确把那个目录装箱交了出去。这次交接,就是制品要干的事。 ...
想在真实环境里学习 GitLab CI 工件 (artifacts) 和缓存 (caches) 吗?
点击下方,立即获得一台预装 GitLab CI 的 Linux 主机,跟懂你代码的 AI 导师一起完成 工件 (artifacts) 和缓存 (caches) 的实操练习。
开始这节课工件 (artifacts) 和缓存 (caches)你将学到什么
- Artifacts paths
- Artifacts expire_in
- Downloading artifacts
- Cache key
- Cache paths
- Artifacts vs caches
用你的语言阅读本课
本课程的所有课时
11 节探索其他课程
Python
19 节 · 9.3小时
Go
20 节 · 12.3小时
React
17 节 · 10.2小时
Linux
17 节 · 8.5小时
Docker
13 节 · 6.6小时
Git
13 节 · 5.9小时
Kubernetes
14 节 · 8小时
Ansible
12 节 · 6.1小时
Bash
12 节 · 5.7小时
Helm
10 节 · 5.4小时
Jenkins
11 节 · 5.3小时
PostgreSQL
14 节 · 7.6小时
MySQL
13 节 · 6.8小时
Web
14 节 · 5.9小时
TypeScript
18 节 · 7.7小时
Vibe Coding
12 节 · 5.8小时
Prompt Engineering
11 节 · 6.2小时
Vibe 编程:基础
12 节 · 4.5小时
Vibe 编程:从原型到生产
12 节 · 5.5小时
Vibe 编程:多智能体工程
12 节 · 5.3小时
Vibe 编程:高级工程
12 节 · 7.3小时
