【发布时间】:2019-06-17 16:51:18
【问题描述】:
我正在尝试使用 fastlane scan 在 CircleCI 中运行我的 iOS 测试套件。运行测试效果很好,但是通过安装来自 cocoapods 的依赖项,总时间增加了很多。
我尝试通过执行以下操作来缓存 Pods 目录,但是,校验和在 restore_cache 步骤和 save_cache 步骤之间发生变化:
- restore_cache:
key: 1-pods-{{ checksum "Podfile.lock" }}
- run:
name: Install Pods
command: pod install
- save_cache:
key: 1-pods-{{ checksum "Podfile.lock" }}
paths:
- ./Pods
本质上,pod install 会导致校验和发生变化,即使没有任何 pod 发生变化。因此,它保存在缓存中的键永远不会与试图从缓存中恢复的内容对齐。
有没有更好的方法来做到这一点?
【问题讨论】:
-
也许你提交的 Podfile.lock 不是最新的?
pod install只会在您的 podfile 发生一些更改时更改 Podfile.lock。我有完全相同的方式来恢复和保存,而且效果很好 -
有同样的问题。你能让事情顺利进行吗?我尝试了密钥前缀解决方案,但导致沙箱不同步错误。
-
我实际上看到了问题所在。我使用
cat在pod_install之前和之后打印出我的Podfile.lock。签入的内容和生成的内容之间的区别在于我有一个私人回购源。在生成的版本中,锁定文件将.git放在 repo 名称的末尾。在我的签入版本中它没有。奇怪的是,两个版本的 cocoapods 是一样的。
标签: ios continuous-integration cocoapods circleci