在 circleCI 配置中,哪个应该是第一个,保存缓存还是恢复缓存?

Posted

技术标签:

【中文标题】在 circleCI 配置中,哪个应该是第一个,保存缓存还是恢复缓存?【英文标题】:In circleCI config which one should be first, save-cache or restore-cache? 【发布时间】:2020-10-02 12:09:09 【问题描述】:

我是circleci的新手。如果我对这个概念的理解有误,请纠正我。

我正在浏览文档。在文档here 中,它说

根据一个键恢复之前保存的缓存

是不是说,save-cache,在restore-cache之前?

在几个示例配置文件中,restore-cache 写在save-cache 之前。赞here

【问题讨论】:

【参考方案1】:

Previously saved cache 表示之前构建的已保存缓存。 所以你需要在save-cache之前写restore-cache,如果依赖没有变化就不需要重新安装。

例如:

第一次构建:依赖项 A 和 B -> 安装 -> 保存到 cache-1

2nd Build:依赖 A 和 B(无变化)-> 使用 cache-1(无需安装)

第 3 次构建:依赖项 A、B 和 C -> 安装 -> 保存到 cache-2

【讨论】:

如果我没记错的话,如果先写save-cache,如果已经有同一个key的缓存就不会创建新的缓存了。 是的,在这种情况下它不会创建新的缓存,但是先写入save-cache,然后在第一次构建时,会缓存什么?因为那个时候依赖还没有安装。 好的。那么反之亦然,即先写restore-cache,会恢复什么? 反之亦然,在第一个版本中,因为没有缓存,所以什么都没有恢复,但从第二个版本开始,以前版本保存的缓存被恢复

以上是关于在 circleCI 配置中,哪个应该是第一个,保存缓存还是恢复缓存?的主要内容,如果未能解决你的问题,请参考以下文章

CircleCI 2.0计划的工作流程未运行

在 CircleCi 中从 Spring Boot 访问 PostgreSQL 9.6

为啥 Angular 8 CircleCI 构建在执行 ng test --watch-false 时失败,业力配置为 singleRun=true?

Circleci 从现有的环境变量创建环境变量

apache_conf Angular CLI的CircleCI配置

apache_conf Phoenix项目的CircleCI 2.0配置