Gradle缓存不适用于GitLab-CI

时间:2018-09-27 19:52:00

标签: java caching gradle gitlab-ci

我正在尝试使用缓存机制,但是它不起作用,我尝试了不同的尝试,但是它们似乎都不适合我。列出的任务在我的机器上和gitlab ci上大约需要75秒,大约需要5-6分钟,在此情况下,运行程序将再次在每个管道中下载依赖项。

问题是如何使用gitlab ci缓存下载的dep?

image: dockerregistry.my-image:1.0.0
variables:
  GIT_SUBMODULE_STRATEGY: normal
  GRADLE_USER_HOME: $CI_PROJECT_DIR/.gradle

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

before_script:
  - echo `pwd`
  - echo `$CI_PROJECT_DIR`
  - rm -f  .gradle/caches/modules-2/modules-2.lock
  - rm -fr .gradle/caches/*/plugin-resolution/

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

junit:
  stage: test
  script:
     - ./gradlew test

谢谢

更新

执行者:Kubernetes
Gitlab版本:11.0.x

Submodule path 'my-other-application': checked out 'fxxxx1'
Checking cache for default...
Successfully extracted cache

.........

Running after script...
$ echo "End CI"
End CI
Creating cache default...
.gradle/wrapper: found 222 matching files          
.gradle/caches: found 8474 matching files     

1 个答案:

答案 0 :(得分:0)

我正在与此同时使用docker executor,并且正在工作:

\)

使用docker时,缓存存储在容器中,因此,如果我运行类似from selenium import webdriver options = webdriver.ChromeOptions() options.headless = True driver = webdriver.Chrome(executable_path="C:/Users/Admin/Documents/chromedriver_win32/chromedriver", options=options) 的东西并清除未运行的容器,则缓存会丢失。

我不知道Kubernetes的工作方式,也许容器在执行结束时被删除。

-> https://gitlab.com/gitlab-org/gitlab-runner/issues/1906