Gradle 缓存
Gradle 缓存 {#gradle-cache}
Section titled “Gradle 缓存 {#gradle-cache}”Tuist 提供了一个 Gradle 插件,可以与 Gradle 内置的构建缓存 集成,以远程共享构建产物。当任务的输出已被缓存时,Gradle 会跳过执行并从 Tuist 的远程缓存中获取结果,从而节省团队和 CI 环境中的构建时间。
::: warning 要求
- 已安装并配置
Tuist Gradle 插件
:::
安装 gradle.properties 文件中启用 Gradle 的构建缓存:
org.gradle.caching=true如果没有启用此配置,Gradle 不会激活其构建缓存子系统——即使配置了远程缓存——所有任务都会执行而不会命中或填充缓存。启用后,Gradle 会将 Tuist 作为远程构建缓存使用,在缓存命中时下载缓存的任务输出,并在任务执行后上传它们。
缓存上传策略 {#cache-upload-policy}
Section titled “缓存上传策略 {#cache-upload-policy}”默认情况下,插件会同时从远程缓存下载和上传产物。你可以在 buildCache 块中使用 push 选项来控制上传:
tuist { buildCache { push = false // 只读模式 }}一个常见的模式是只在 CI 中上传产物(因为 CI 的构建是可重现的),同时保持本地环境为只读:
tuist { buildCache { push = System.getenv("CI") != null }}使用此配置,本地构建可以受益于缓存的产物而不需要上传,而 CI 构建则会将缓存填充供团队其他成员使用。
持续集成 {#continuous-integration}
Section titled “持续集成 {#continuous-integration}”对于 CI 环境,请使用
禁用本地构建缓存 {#disabling-the-local-build-cache}
Section titled “禁用本地构建缓存 {#disabling-the-local-build-cache}”Gradle 同时维护本地和远程构建缓存。本地构建缓存在 ~/.gradle/caches/build-cache-1 目录下的磁盘上存储任务输出。
当 Tuist 被配置为远程构建缓存时,建议在 CI 上禁用本地构建缓存。这可以避免在 CI 运行器上存储冗余的产物,并确保构建始终使用新条目填充远程缓存供团队其他成员使用。
在 CI 上禁用 Gradle 的本地构建缓存,需要在 settings.gradle.kts 中配置:
buildCache { local { isEnabled = System.getenv("CI") == null }}这使得本地构建缓存可用于本地开发,同时在 CI 上禁用它——在 CI 上由 Tuist 的远程缓存处理产物共享。
配置参考 {#configuration-reference}
Section titled “配置参考 {#configuration-reference}”buildCache 块支持以下选项:
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled | Boolean | true | 是否启用远程构建缓存。 |
push | Boolean | true | 是否将任务输出上传到远程缓存。 |
allowInsecureProtocol | Boolean | false | 是否允许不安全的 HTTP 连接。 |