Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle的GitLab Runner缓存不工作_Gradle_Gitlab_Gitlab Ci - Fatal编程技术网

Gradle的GitLab Runner缓存不工作

Gradle的GitLab Runner缓存不工作,gradle,gitlab,gitlab-ci,Gradle,Gitlab,Gitlab Ci,我正在使用GitLab Runner作为CI构建一个Android项目,但是缓存不起作用 这是我的.gitlab ci.yml。它是从 和日志: Running with gitlab-ci-multi-runner 9.0.0 (08a9e6f) Using Docker executor with image runmymind/docker-android-sdk:latest ... Using docker image sha256:d696fa13188c8d2d121c86cf52

我正在使用GitLab Runner作为CI构建一个Android项目,但是缓存不起作用

这是我的
.gitlab ci.yml
。它是从

和日志:

Running with gitlab-ci-multi-runner 9.0.0 (08a9e6f)
Using Docker executor with image runmymind/docker-android-sdk:latest ...
Using docker image sha256:d696fa13188c8d2d121c86cf526201b363c1e34ee7b163d6ce1ab1718f91a5e6 ID=sha256:d696fa13188c8d2d121c86cf526201b363c1e34ee7b163d6ce1ab1718f91a5e6 for predefined container...
Pulling docker image runmymind/docker-android-sdk:latest ...
Using docker image runmymind/docker-android-sdk:latest ID=sha256:474ac98077a496f2f71aa22ce4eebcea966c2960a061d4a59babe81ff007009b for build container...
Running on runner-8ce5d03c-project-72-concurrent-0 via outrage...
Cloning repository...
Cloning into '/builds/User/android-project'...
Checking out 015d01d0 as master...
Skipping Git submodules setup
Checking cache for default...
Successfully extracted cache
$ set +e
$ du -sh $CI_PROJECT_DIR/.gradle/wrapper
du: cannot access '/builds/User/android-project/.gradle/wrapper': No such file or directory
$ du -sh $CI_PROJECT_DIR/.gradle/caches
du: cannot access '/builds/User/android-project/.gradle/caches': No such file or directory
$ set -e
$ ./gradlew assembleDebug
Downloading https://services.gradle.org/distributions/gradle-3.4.1-all.zip
Unzipping /builds/User/android-project/.gradle/wrapper/dists/gradle-3.4.1-all/c3ib5obfnqr0no9szq6qc17do/gradle-3.4.1-all.zip to /builds/User/android-project/.gradle/wrapper/dists/gradle-3.4.1-all/c3ib5obfnqr0no9szq6qc17do
Set executable permissions for: /builds/User/android-project/.gradle/wrapper/dists/gradle-3.4.1-all/c3ib5obfnqr0no9szq6qc17do/gradle-3.4.1/bin/gradle
Starting a Gradle Daemon (subsequent builds will be faster)
Download https://jcenter.bintray.com/com/android/tools/build/gradle/2.3.0/gradle-2.3.0.pom
(more downloads)
我还尝试使用gradle参数设置gradle user home,积极地为缓存等指定
.gradle/
,但都不起作用


有什么想法吗?

如果您使用Gitlab<9.0,您可以添加一个命令,指定缓存必须在不同的管道之间共享

尝试在
缓存下添加
键:$CI\u项目\u名称

image: runmymind/docker-android-sdk:latest
variables:
  GRADLE_USER_HOME: $CI_PROJECT_DIR/.gradle
stages:
  - build
debug:
  stage: build
  script:
    - set +e
    - du -sh $CI_PROJECT_DIR/.gradle/wrapper
    - du -sh $CI_PROJECT_DIR/.gradle/caches
    - set -e
    - ./gradlew assembleDebug
    - mkdir artifacts
    - cp mobile/build/outputs/apk/*.apk artifacts/
    - cp wear/build/outputs/apk/*.apk artifacts/
  cache:
    key: $CI_PROJECT_NAME
    paths:
      - .gradle/wrapper/
      - .gradle/caches/
      - build/
      - mobile/build/
      - wear/build/
  artifacts:
    name: "project_${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}"
    expire_in: 2 weeks
    paths:
      - artifacts/

感谢您的回复,但我使用的是GitLab 9.0。2@FrederickZhang你能试试吗?
cache:key
的新
default
属性让我有点困惑
image: runmymind/docker-android-sdk:latest
variables:
  GRADLE_USER_HOME: $CI_PROJECT_DIR/.gradle
stages:
  - build
debug:
  stage: build
  script:
    - set +e
    - du -sh $CI_PROJECT_DIR/.gradle/wrapper
    - du -sh $CI_PROJECT_DIR/.gradle/caches
    - set -e
    - ./gradlew assembleDebug
    - mkdir artifacts
    - cp mobile/build/outputs/apk/*.apk artifacts/
    - cp wear/build/outputs/apk/*.apk artifacts/
  cache:
    key: $CI_PROJECT_NAME
    paths:
      - .gradle/wrapper/
      - .gradle/caches/
      - build/
      - mobile/build/
      - wear/build/
  artifacts:
    name: "project_${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}"
    expire_in: 2 weeks
    paths:
      - artifacts/