我为多项目Gradle文件提供了以下构建配置:
stages:
- test
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
cache:
paths:
- .gradle/wrapper
- .gradle/caches
- build
test :
dependencies: []
image: openjdk:x
stage: test
script:
- ./gradlew test --debug
在GitLab中,在没有修改源文件的构建之间,我得到:
Up-to-date check for task ':x:compileJava' took 1.117 secs. It is not up-to-date because:
No history is available.
我不知道为什么它会这样说,因为我希望任务历史记录从缓存中恢复。我在运行之间的日志中看到了这一点:
Creating cache default...
.gradle/wrapper: found 207 matching files
.gradle/caches: found 5058 matching files
build: found 2743 matching files
当我在本地计算机上重新运行时,我可以看到测试没有重新运行:
> Skipping task ':x:compileJava' as it is up-to-date (took 0.008 secs).
更令人困惑的是依赖项被完美地缓存了,当我没有做任何代码更改时,它只是不断地重新运行测试。
1条答案
按热度按时间cvxl0en21#
据我所知,gradle丢失的历史记录也存储在.gradle文件夹中,而不是缓存或 Package 子文件夹中。如果您让Gitlab缓存完整的.gradle文件夹,问题应该会消失。
另请参见此示例:https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Gradle.gitlab-ci.yml