我不太熟悉Gitlab CI,但最近我开始了一个项目,并希望加快管道建设。目前,我们正在浪费10分钟,一遍又一遍地下载相同的Gradle依赖项。
管道托管在一个私有运行程序上,并在Docker中使用Docker (这可能是缺少某些东西的原因)。它看起来像是尝试使用缓存,尽管它不起作用。
有趣的部分是:
image: docker:stable
services:
- name: docker:dind
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
cache:
paths:
- .gradle/wrapper
- .gradle/caches
variables:
BUILD_IMAGE: "openjdk:8-jdk"
build-job:
image: $BUILD_IMAGE
stage: build
variables:
GIT_STRATEGY: clone
GIT_SUBMODULE_STRATEGY: normal
script:
- ./gradlew clean classes jasperCompilerTask -Dorg.gradle.daemon=false -x test
- ./gradlew properties -q | grep "version:" | awk '{print $2}' >> project_version
only:
refs:
- develop
- octopus
- merge_requests
variables:
- $BRANCH_TO_MERGE == null
artifacts:
paths:
- project_version
- deployment-scripts/deploy.sh在工作产出中,我们可以看到:
Updating/initializing submodules...
Restoring cache 00:01
Checking cache for default-8-non_protected...
No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted.
Successfully extracted cache
Executing "step_script" stage of the job script 10:29
$ export GRADLE_USER_HOME=`pwd`/.gradle
$ ./gradlew clean classes jasperCompilerTask -Dorg.gradle.daemon=false -x test
Downloading ...还有数百条下载线。
你知道会失去什么吗?
发布于 2022-06-10 13:39:05
添加一个printenv语句,以查看GRADLE_USER_HOME变量设置的值。
将--info添加到./gradlew命令中,以查看下载依赖项的确切位置。https://stackoverflow.com/a/57857095/2675670
build-job:
image: $BUILD_IMAGE
stage: build
variables:
GIT_STRATEGY: clone
GIT_SUBMODULE_STRATEGY: normal
script:
- printenv GRADLE_USER_HOME
- ./gradlew --info clean classes jasperCompilerTask -Dorg.gradle.daemon=false -x test
- ./gradlew properties -q | grep "version:" | awk '{print $2}' >> project_version
only:https://stackoverflow.com/questions/72570707
复制相似问题