CircleCI для iOS - кеширование зависимостей cocoapods - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь запустить свой набор тестов iOS в 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

По сути, pod install вызывает изменение контрольной суммы, даже если ни один из модулей не изменился. Таким образом, ключ, под которым он сохраняется в кэше, никогда не совпадает с тем, что пытается восстановить из кэша.

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 26 января 2019

Да, есть способ заставить эту работу.restore_cache принимает ключевые префиксы (https://circleci.com/docs/2.0/configuration-reference/#restore_cache). Таким образом, чтобы вернуться к более раннему кешу, вы можете использовать что-то вроде этого:

- restore_cache:
    keys:
      - 1-pods-{{ checksum "Podfile.lock" }}
      - 1-pods-

Здесь есть более конкретные рекомендации: https://circleci.com/docs/2.0/ios-migrating-from-1-2/#installing-cocoapods

...