我的项目是用gradlew. GitLab CI 使用官方 Gradle 镜像在 docker runner 中构建项目(请参阅https://hub.docker.com/_/gradle)。
现在,即使 Gradle 已经安装在 cointainer 中,包装器每次仍然会下载发行版。这占据了构建时间的大部分。
我如何“告诉”包装器有关已安装的发行版的信息,以便它不会重新下载它(当然假设版本匹配)?
当然,替代方案是使用gradle而不是gradlew在 CI 中使用,并依赖 docker 映像来获得正确的发行版,但如果可能的话,我想避免这种情况,因为这样我就必须手动保持.gitlab-ci.yml包装器配置同步。
我认为您不能指示包装器使用手动安装的本地版本的 Gradle。
我能想到的防止在每次构建时下载发行版的唯一方法(在升级 Gradle 时不涉及额外步骤)是缓存 Gradle 主文件夹(例如 /home/gradle/.gradle)。即使它驻留在 Docker 容器中,这也应该是可能的。
我不知道 GitLab 如何支持缓存的详细信息,但它可能只有在缓存存储在本地时才有意义(无论是在同一台机器上还是在具有高网络带宽的缓存服务器中)。如果每次构建时都必须从 S3 存储桶之类的东西上传和下载,那么可能需要与从 services.gradle.org 下载它一样多的时间。但如果你能做到这一点,你不仅会缓存 Gradle 发行版,还会缓存构建依赖项,这应该会进一步加快构建速度。
| 归档时间: |
|
| 查看次数: |
3128 次 |
| 最近记录: |