cahe和artifacts之间的区别
官网上区别:https://docs.gitlab.com/ee/ci/caching/index.html
以下是阅读官网文档后,翻译和总结的:
cache:用来存储项目的dependencies,以使下次跑pipline的时候更快一些
第一次跑pipline的时候下载了外部的依赖了(比如说第三方jar包),这样下次跑pipline时,就不用再从网络上下载了。但是stage之间的中间产物的传递应该用artifacts。
artifacts:用来在stage之间传递stage生成物
同一个pipline里不同的stage之间共享生成物的,在不同的pipline之间不可用。
不同点 | cache | artifacts |
---|---|---|
enable方式: | 使用cache:显式enable | 使用artifacts:显示enable |
全局定义: | 在最外层定义全局的cache的话所有job就都有这个cache了 | 不支持全局定义 |
其他job的使用: | 其他job要用cache的话,需要在job里显示配置cache | 生成artifacts的job运行完后,后面的job都会下载artifacts,不需要显示配置什么(为了避免不必要的下载,可以用dependencies: []指定不下载任何artifacts) |
存储位置(这一点没弄懂?) | 存储在runner安装的地方(如果是分布式可以设置为存在S3) | 存储在gitlab server |
使用方式 | 不用的pipline之间使用,以使下一次pipline更快 | 在同一个pipline的不同的stage使用 |