Gitlab CI gradle dependency cache

孤人 提交于 2019-12-02 23:12:33
ETL

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

Turns out another post has the answer to this! There is a work around which is to run a before_script that sets the GRADLE_HOME to the directory of your project, which you can then slurp up with the cache directive.

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

According to 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.

That means you need to put the gradle files into e.g. the /cache folder

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/

The /cache folder will be kept automatically, but I keep the cache config for clarity.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!