Кэширование Gradle не работает с GitLab-CI - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь использовать механизм кэширования, но он не работает, я пробовал другие попытки, но ни один из них, похоже, не работает для меня.Перечисленные задачи занимают около 75 секунд на моей машине и на gitlab ci около 5-6 минут, когда бегун загружает зависимости снова и в каждом конвейере.

Вопрос в том, как я могу кэшировать загруженные депы с помощью gitlab ci?

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 голосов
/ 03 октября 2018

Я использую Docker Executor с этим и работает:

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

С Docker кеш хранится в контейнере, поэтому, если я запускаю что-то вроде docker system prune и очищаю не запущенные контейнеры, кешпотерян.

Я не знаю, как работает Kubernetes, возможно, контейнер будет удален в конце выполнения.

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

...