# Кэш Gradle {#gradle-cache}

Tuist предоставляет плагин для Gradle, который интегрируется с [встроенным кэшем сборок Gradle](https://docs.gradle.org/current/userguide/build_cache.html) для удалённого обмена артефактами сборки. Если выходные данные задачи уже находятся в кэше, Gradle пропускает её выполнение и загружает результат из удалённого кэша Tuist, экономя время сборки для всей вашей команды и в средах CI/CD.

После установки <.localized_link href="/guides/install-gradle-plugin">плагина Tuist для Gradle</.localized_link> необходимо также включить кэш сборок Gradle в файле `gradle.properties`:

```properties
org.gradle.caching=true
```

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

## Политика загрузки в кэш {#cache-upload-policy}

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

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

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

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

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

## Непрерывная интеграция {#continuous-integration}

Для сред CI выполните аутентификацию одним из способов, описанных в <.localized_link href="/guides/server/authentication#continuous-integration">руководстве по аутентификации</.localized_link>. См. <.localized_link href="/guides/integrations/continuous-integration">руководство по непрерывной интеграции</.localized_link> для примеров настройки CI под конкретных провайдеров.

### Отключение локального кэша сборок {#disabling-the-local-build-cache}

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

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

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

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

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

## Справочник по конфигурации {#configuration-reference}

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

| Параметр | Тип | По умолчанию | Описание |
| --- | --- | --- | --- |
| `enabled` | `Boolean` | `true` | Включён ли удалённый кэш сборок. |
| `push` | `Boolean` | `true` | Загружать ли выходные данные задач в удалённый кэш. |
| `allowInsecureProtocol` | `Boolean` | `false` | Разрешать ли небезопасные HTTP-соединения. |
