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
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
我很确定你是对的,这是CircleCI Docs中的一个错字。我已经开了一个公关来解决:https://github.com/circleci/circleci-docs/pull/2663