CircleCI 文档包含一些关于为什么bundle clean
在涉及缓存时应该运行的信息,但我很难理解如何运行。我对Bundler (Ruby)
此处部分中的代码块感到困惑:
https ://circleci.com/docs/2.0/caching/#bundler-ruby
有问题的代码块是:
- run: bundle install & bundle clean
- restore_cache:
keys:
# when lock file changes, use increasingly general patterns to restore cache
- v1-gem-cache-{{ arch }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
- v1-gem-cache-{{ arch }}-{{ .Branch }}-
- v1-gem-cache-{{ arch }}-
- save_cache:
paths:
- ~/.bundle
key: v1-gem-cache-{{ arch }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
我正在阅读这个过程:
- 在缓存到位
bundle install
之前运行(恢复缓存之前的完整 gem 安装时间,这抵消了缓存的节省时间的好处)然后运行bundle clean
- 通过已安装的 gem 恢复缓存
- 不要做任何事情(在
restore_cache
和save_cache
步骤之间) - 保存新缓存
我是否正确理解了该过程?
在我看来,这看起来restore_cache
和save_cache
步骤不会有效,因为bundle install
已经花费了全部时间。
如果我理解事物,这会是一个更有效的过程吗?
- restore_cache:
keys:
# when lock file changes, use increasingly general patterns to restore cache
- v1-gem-cache-{{ arch }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
- v1-gem-cache-{{ arch }}-{{ .Branch }}-
- v1-gem-cache-{{ arch }}-
- run: bundle install & bundle clean
- save_cache:
paths:
- ~/.bundle
key: v1-gem-cache-{{ arch }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
如果我没有正确理解这一点,任何人都可以帮助澄清建议的代码块是如何工作的吗?
更新: 它看起来也像
- run: bundle install & bundle clean
需要修改为
- run: bundle install && bundle clean