Перейти к содержимому

Кэш Gradle

Tuist предоставляет плагин для Gradle, который интегрируется с встроенным кэшем сборок Gradle для удалённого обмена артефактами сборки. Если выходные данные задачи уже находятся в кэше, Gradle пропускает её выполнение и загружает результат из удалённого кэша Tuist, экономя время сборки для всей вашей команды и в средах CI/CD.

После установки плагина Tuist для Gradle необходимо также включить кэш сборок Gradle в файле gradle.properties:

plaintext
org.gradle.caching=true

Без этого Gradle не активирует подсистему кэширования сборок — даже если удалённый кэш настроен — и все задачи будут выполняться без использования или заполнения кэша. После включения Gradle будет использовать Tuist в качестве удалённого кэша сборок, скачивая закэшированные выходные данные задач при попадании в кэш и загружая их после выполнения задачи.

Политика загрузки в кэш#

По умолчанию плагин одновременно скачивает и загружает артефакты в удалённый кэш. Вы можете управлять загрузкой с помощью опции push в блоке buildCache:

kotlin
tuist {
buildCache {
push = false // read-only mode
}
}

Распространённый подход — отправлять артефакты только из среды CI, где сборки воспроизводимы, оставляя локальные окружения в режиме только для чтения:

kotlin
tuist {
buildCache {
push = System.getenv("CI") != null
}
}

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

Непрерывная интеграция#

Для сред CI выполните аутентификацию одним из способов, описанных в руководстве по аутентификации. См. руководство по непрерывной интеграции для примеров настройки CI под конкретных провайдеров.

Отключение локального кэша сборок#

Gradle поддерживает как локальный, так и удалённый кэш сборок. Локальный кэш сборок хранит выходные данные задач на диске в директории ~/.gradle/caches/build-cache-1.

Когда Tuist настроен как удалённый кэш сборок, рекомендуется отключать локальный кэш сборок в среде CI. Это позволяет избежать хранения избыточных артефактов на раннерах CI и гарантирует, что сборки всегда пополняют удалённый кэш свежими записями для остальной части команды.

Отключите локальный кэш сборок Gradle в среде CI в вашем файле settings.gradle.kts:

kotlin
buildCache {
local {
isEnabled = System.getenv("CI") == null
}
}

Это сохраняет локальный кэш сборок доступным для локальной разработки, отключая его в среде CI, где обмен артефактами обеспечивает удалённый кэш Tuist.

Справочник по конфигурации#

Блок buildCache поддерживает следующие параметры:

ПараметрТипПо умолчаниюОписание
enabledBooleantrueВключён ли удалённый кэш сборок.
pushBooleantrueЗагружать ли выходные данные задач в удалённый кэш.
allowInsecureProtocolBooleanfalseРазрешать ли небезопасные HTTP-соединения.