iOS 版 CircleCI - 缓存 cocoapods 依赖项

djt*_*djt 6 continuous-integration ios cocoapods circleci

我正在尝试使用fastlane scan. 运行测试效果很好,但是通过从 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
Run Code Online (Sandbox Code Playgroud)

本质上,pod install即使没有任何 pod 发生变化,也会导致校验和发生变化。因此,它在缓存中保存的键永远不会与试图从缓存中恢复的键对齐。

有一个更好的方法吗?

dne*_*hin 5

是的,有一种方法可以使这项工作发挥作用。restore_cache接受键前缀(https://circleci.com/docs/2.0/configuration-reference/#restore_cache)。因此,要回退到较早的缓存,您可以使用以下内容:

- restore_cache:
    keys:
      - 1-pods-{{ checksum "Podfile.lock" }}
      - 1-pods-
Run Code Online (Sandbox Code Playgroud)

这里有一些更具体的指南:https : //circleci.com/docs/2.0/ios-migrating-from-1-2/#installing-cocoapods