2015-12-08 59 views
7

我在Gitlab CI上构建android,每次下载依赖关系都很烦人。我试图缓存:Gitlab CI gradle依赖关系缓存

$HOME/.gradle/ 
$HOME/.gradle/caches/ 
$GRADLE_HOME/caches/ 
$HOME/.m2/ 
.gradle/ 
build/ 
app/build/ 

我.gitlab-ci.yml的第二万六千五百九十四迭代here。我在我的编译环境中安装了gradle,因为没有缓存gradlew每次下载它,这需要更多的时间。我用于建筑的图像是here。我的CI服务器启动脚本可以找到here。我认为,如果缓存起作用,我将无法看到每个构建下载的依赖关系列表。

生成日志:

gitlab-CI-多亚军0.7.2(998cf5d) 使用泊坞执行与图像的Android ... 拉泊坞窗图像gitlab/gitlab亚军:建... 拉docker image android:latest ... 警告:无法拉出最新版本的图像android:latest:错误:图像库/ android:最新未找到 警告:将使用本地找到的图像。

Running on runner-76acd9d3-project-74192-concurrent-0 via ff9200d4be41... 
Fetching changes... 
Removing .gradle/ 
Removing artifacts.upload.log 
Removing rxfirebaseandroid/build/ 
HEAD is now at 7f151df djgfj 
Checking out 7f151df2 as ci-gitlab... 
HEAD is now at 7f151df... djgfj 
Restoring cache... 

$ gradle testDebug 
Download https://jcenter.bintray.com/com/android/tools/build/gradle/1.3.0/gradle-1.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/build/gradle-core/1.3.0/gradle-core-1.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/build/builder/1.3.0/builder-1.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/lint/lint/24.3.0/lint-24.3.0.pom 
Download https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/5.2.1/proguard-gradle-5.2.1.pom 
Download https://jcenter.bintray.com/net/sf/proguard/proguard-parent/5.2.1/proguard-parent-5.2.1.pom 
Download https://jcenter.bintray.com/com/android/tools/build/builder-model/1.3.0/builder-model-1.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/build/builder-test-api/1.3.0/builder-test-api-1.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/sdklib/24.3.0/sdklib-24.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/sdk-common/24.3.0/sdk-common-24.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/common/24.3.0/common-24.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/build/manifest-merger/24.3.0/manifest-merger-24.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/24.3.0/ddmlib-24.3.0.pom 
Download https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0.pom 
Download https://jcenter.bintray.com/org/sonatype/oss/oss-parent/7/oss-parent-7.pom 
Download https://jcenter.bintray.com/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.pom 
Download https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.pom 
Download https://jcenter.bintray.com/org/ow2/asm/asm/5.0.3/asm-5.0.3.pom 
Download https://jcenter.bintray.com/org/ow2/asm/asm-parent/5.0.3/asm-parent-5.0.3.pom 
Download https://jcenter.bintray.com/org/ow2/ow2/1.3/ow2-1.3.pom 
Download https://jcenter.bintray.com/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom 
Download https://jcenter.bintray.com/com/android/tools/jack/jack-api/0.9.0/jack-api-0.9.0.pom 
Download https://jcenter.bintray.com/com/android/tools/jill/jill-api/0.9.0/jill-api-0.9.0.pom 
Download https://jcenter.bintray.com/com/android/tools/lint/lint-checks/24.3.0/lint-checks-24.3.0.pom 
Download https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.pom 
Download https://jcenter.bintray.com/net/sf/proguard/proguard-base/5.2.1/proguard-base-5.2.1.pom 
Download https://jcenter.bintray.com/com/android/tools/annotations/24.3.0/annotations-24.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/layoutlib/layoutlib-api/24.3.0/layoutlib-api-24.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/dvlib/24.3.0/dvlib-24.3.0.pom 
Download https://jcenter.bintray.com/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom 
Download https://jcenter.bintray.com/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.pom 
Download https://jcenter.bintray.com/org/apache/commons/commons-parent/33/commons-parent-33.pom 
Download https://jcenter.bintray.com/org/apache/apache/13/apache-13.pom 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.pom 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-client/4.1.1/httpcomponents-client-4.1.1.pom 
Download https://jcenter.bintray.com/org/apache/httpcomponents/project/4.1.1/project-4.1.1.pom 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1.pom 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-client/4.1/httpcomponents-client-4.1.pom 
Download https://jcenter.bintray.com/com/google/guava/guava/17.0/guava-17.0.pom 
Download https://jcenter.bintray.com/com/google/guava/guava-parent/17.0/guava-parent-17.0.pom 
Download https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.pom 
Download https://jcenter.bintray.com/com/android/tools/lint/lint-api/24.3.0/lint-api-24.3.0.pom 
Download https://jcenter.bintray.com/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.pom 
Download https://jcenter.bintray.com/com/intellij/annotations/12.0/annotations-12.0.pom 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1.pom 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-core/4.1/httpcomponents-core-4.1.pom 
Download https://jcenter.bintray.com/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom 
Download https://jcenter.bintray.com/org/apache/commons/commons-parent/5/commons-parent-5.pom 
Download https://jcenter.bintray.com/org/apache/apache/4/apache-4.pom 
Download https://jcenter.bintray.com/commons-codec/commons-codec/1.4/commons-codec-1.4.pom 
Download https://jcenter.bintray.com/org/apache/commons/commons-parent/11/commons-parent-11.pom 
Download https://jcenter.bintray.com/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3.pom 
Download https://jcenter.bintray.com/com/android/tools/build/gradle/1.3.0/gradle-1.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/build/gradle-core/1.3.0/gradle-core-1.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/build/builder/1.3.0/builder-1.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/lint/lint/24.3.0/lint-24.3.0.jar 
Download https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/5.2.1/proguard-gradle-5.2.1.jar 
Download https://jcenter.bintray.com/com/android/tools/build/builder-model/1.3.0/builder-model-1.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/build/builder-test-api/1.3.0/builder-test-api-1.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/sdklib/24.3.0/sdklib-24.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/sdk-common/24.3.0/sdk-common-24.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/common/24.3.0/common-24.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/build/manifest-merger/24.3.0/manifest-merger-24.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/24.3.0/ddmlib-24.3.0.jar 
Download https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar 
Download https://jcenter.bintray.com/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.jar 
Download https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.jar 
Download https://jcenter.bintray.com/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar 
Download https://jcenter.bintray.com/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar 
Download https://jcenter.bintray.com/com/android/tools/jack/jack-api/0.9.0/jack-api-0.9.0.jar 
Download https://jcenter.bintray.com/com/android/tools/jill/jill-api/0.9.0/jill-api-0.9.0.jar 
Download https://jcenter.bintray.com/com/android/tools/lint/lint-checks/24.3.0/lint-checks-24.3.0.jar 
Download https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.jar 
Download https://jcenter.bintray.com/net/sf/proguard/proguard-base/5.2.1/proguard-base-5.2.1.jar 
Download https://jcenter.bintray.com/com/android/tools/annotations/24.3.0/annotations-24.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/layoutlib/layoutlib-api/24.3.0/layoutlib-api-24.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/dvlib/24.3.0/dvlib-24.3.0.jar 
Download https://jcenter.bintray.com/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar 
Download https://jcenter.bintray.com/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.jar 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1.jar 
Download https://jcenter.bintray.com/com/google/guava/guava/17.0/guava-17.0.jar 
Download https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar 
Download https://jcenter.bintray.com/com/android/tools/lint/lint-api/24.3.0/lint-api-24.3.0.jar 
Download https://jcenter.bintray.com/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar 
Download https://jcenter.bintray.com/com/intellij/annotations/12.0/annotations-12.0.jar 
Download https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1.jar 
Download https://jcenter.bintray.com/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar 
Download https://jcenter.bintray.com/commons-codec/commons-codec/1.4/commons-codec-1.4.jar 
Download https://jcenter.bintray.com/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3.jar 
Download https://jcenter.bintray.com/com/firebase/firebase-client-android/2.3.1/firebase-client-android-2.3.1.pom 
Download https://jcenter.bintray.com/io/reactivex/rxjava/1.0.14/rxjava-1.0.14.pom 
Download https://jcenter.bintray.com/com/firebase/firebase-client-jvm/2.3.1/firebase-client-jvm-2.3.1.pom 
Download https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom 
Download https://jcenter.bintray.com/com/fasterxml/oss-parent/10/oss-parent-10.pom 
Download https://jcenter.bintray.com/com/firebase/tubesock/0.0.11/tubesock-0.0.11.pom 
Download https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom 
Download https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom 
Download https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.jar 
Download https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.jar 
Download https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.jar 
Download https://jcenter.bintray.com/com/firebase/tubesock/0.0.11/tubesock-0.0.11.jar 
Download https://jcenter.bintray.com/com/firebase/firebase-client-jvm/2.3.1/firebase-client-jvm-2.3.1.jar 
Download https://jcenter.bintray.com/com/firebase/firebase-client-android/2.3.1/firebase-client-android-2.3.1.jar 
Download https://jcenter.bintray.com/io/reactivex/rxjava/1.0.14/rxjava-1.0.14.jar 
Download https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.pom 
Download https://jcenter.bintray.com/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom 
Download https://jcenter.bintray.com/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom 
Download https://jcenter.bintray.com/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar 
Download https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.jar 
:rxfirebaseandroid:preBuild UP-TO-DATE 
:rxfirebaseandroid:preDebugBuild UP-TO-DATE 
:rxfirebaseandroid:checkDebugManifest 
:rxfirebaseandroid:prepareDebugDependencies 
:rxfirebaseandroid:compileDebugAidl UP-TO-DATE 
:rxfirebaseandroid:compileDebugRenderscript UP-TO-DATE 
:rxfirebaseandroid:generateDebugBuildConfig UP-TO-DATE 
:rxfirebaseandroid:generateDebugAssets UP-TO-DATE 
:rxfirebaseandroid:mergeDebugAssets UP-TO-DATE 
:rxfirebaseandroid:generateDebugResValues UP-TO-DATE 
:rxfirebaseandroid:generateDebugResources UP-TO-DATE 
:rxfirebaseandroid:packageDebugResources UP-TO-DATE 
:rxfirebaseandroid:processDebugManifest UP-TO-DATE 
:rxfirebaseandroid:processDebugResources UP-TO-DATE 
:rxfirebaseandroid:generateDebugSources UP-TO-DATE 
:rxfirebaseandroid:processDebugJavaRes UP-TO-DATE 
:rxfirebaseandroid:compileDebugJavaWithJavac UP-TO-DATE 
:rxfirebaseandroid:preDebugUnitTestBuild UP-TO-DATE 
:rxfirebaseandroid:prepareDebugUnitTestDependencies 
:rxfirebaseandroid:processDebugUnitTestJavaRes UP-TO-DATE 
:rxfirebaseandroid:compileDebugUnitTestJavaWithJavac UP-TO-DATE 
:rxfirebaseandroid:compileDebugUnitTestSources UP-TO-DATE 
:rxfirebaseandroid:mockableAndroidJar UP-TO-DATE 
:rxfirebaseandroid:assembleDebugUnitTest UP-TO-DATE 
:rxfirebaseandroid:testDebugUnitTest UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 51.086 secs 
$ gradle assembleDebug 
:rxfirebaseandroid:compileLint 
:rxfirebaseandroid:copyDebugLint UP-TO-DATE 
:rxfirebaseandroid:preBuild UP-TO-DATE 
:rxfirebaseandroid:preDebugBuild UP-TO-DATE 
:rxfirebaseandroid:checkDebugManifest 
:rxfirebaseandroid:prepareDebugDependencies 
:rxfirebaseandroid:compileDebugAidl UP-TO-DATE 
:rxfirebaseandroid:compileDebugRenderscript UP-TO-DATE 
:rxfirebaseandroid:generateDebugBuildConfig UP-TO-DATE 
:rxfirebaseandroid:generateDebugAssets UP-TO-DATE 
:rxfirebaseandroid:mergeDebugAssets UP-TO-DATE 
:rxfirebaseandroid:generateDebugResValues UP-TO-DATE 
:rxfirebaseandroid:generateDebugResources UP-TO-DATE 
:rxfirebaseandroid:packageDebugResources UP-TO-DATE 
:rxfirebaseandroid:processDebugManifest UP-TO-DATE 
:rxfirebaseandroid:processDebugResources UP-TO-DATE 
:rxfirebaseandroid:generateDebugSources UP-TO-DATE 
:rxfirebaseandroid:processDebugJavaRes UP-TO-DATE 
:rxfirebaseandroid:compileDebugJavaWithJavac UP-TO-DATE 
:rxfirebaseandroid:extractDebugAnnotations UP-TO-DATE 
:rxfirebaseandroid:mergeDebugProguardFiles UP-TO-DATE 
:rxfirebaseandroid:packageDebugJar UP-TO-DATE 
:rxfirebaseandroid:compileDebugNdk UP-TO-DATE 
:rxfirebaseandroid:packageDebugJniLibs UP-TO-DATE 
:rxfirebaseandroid:packageDebugLocalJar UP-TO-DATE 
:rxfirebaseandroid:packageDebugRenderscript UP-TO-DATE 
:rxfirebaseandroid:bundleDebug UP-TO-DATE 
:rxfirebaseandroid:compileDebugSources UP-TO-DATE 
:rxfirebaseandroid:assembleDebug UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 10.146 secs 

Archiving cache... 
INFO[0000] Creating archive cache.tgz ...    
INFO[0002] Done!           
Archiving artifacts... 
INFO[0000] Creating archive artifacts.tgz ...   
INFO[0000] Done!           
Uploading artifacts... 
20.0K artifacts.tgz 

Build succeeded. 
+0

我不明白这个问题的想法。你已经为你的Android测试设置了Gitlab CI,并且它工作正常。虽然,您希望在测试期间运行Gradle和Android SDK安装在您的Gitlab服务器上,而不是下载,只需使用现有的,对吧?当您尝试缓存依赖关系时,您可以添加来自失败生成的日志吗? – piotrek1543

+0

添加了上次构建的日志 – DariusL

+0

我配置了我的构建以使用这些构建。工件正常工作。 – DariusL

回答

15

https://stackoverflow.com/a/35478988/2026105

原来另一篇文章有​​这个问题的答案!有一个解决办法是运行before_script那台GRADLE_HOME到你的项目,你可以再与缓存指令,啜了的目录。

before_script: 
    - export GRADLE_USER_HOME=`pwd`/.gradle 

cache: 
    paths: 
    - .gradle/wrapper 
    - .gradle/caches 

build: 
    stage: build 
    script: 
    - ./gradlew assemble 

test: 
    stage: test 
    script: 
    - ./gradlew check 
+1

太棒了,这个工程。你只需要''before_script'中的' - chmod + x。/ gradlew'。 – DariusL

+0

对于'export GRADLE_USER_HOME =/cache/.gradle'这样的更好的解决方案?因为它总是自动缓存。 – Hubbitus

+0

@Hubbitus - 可能 - 如果可行,可以将其作为替代/简单的方式添加到答案中。 – ETL

2

根据Kamil Trzciński

We run the caching outside the build container. So you can cache absolute paths, but since only /builds and /cache is transferred you have no-way to cache container-local files.

这意味着你需要把文件的gradle成如在/cache文件夹

before_script: 
    - export GRADLE_USER_HOME=cache/.gradle 

... 

cache: 
    key: "$CI_COMMIT_REF_NAME" #optional: per branch caching, can be omitted 
    paths: 
    - $GRADLE_USER_HOME/caches/ 
    - $GRADLE_USER_HOME/wrapper/ 
    - $GRADLE_USER_HOME/build-cache/ 

/cache文件夹会自动保存,但我一直为清楚起见,高速缓存配置。