Я настроил и работаю после настройки
- gitlab-ci, который использует программу-докер и загружает кэш на S3
- сборка maven с настроенным кэшированием
- кэширование корректно загружается и загружается на каждую работу
Но проблема в том, что каждый раз, когда я запускаю mvn install
, что-то в локальном репозитории maven изменяется (я предполагаю, что он обновляет метаданные pom), и бегун gitlab продолжает загружать новые версии кэша при каждой отдельной сборке.
По-прежнему быстрее и надежнее использовать этот «отключенный» кэш, чем каждый раз загружать депы из Интернета, но загрузка может занять много времени, и я бы хотел сэкономить это дополнительное время.
Как я могу изменить свою сборку, чтобы заставить maven генерировать кешируемый локальный репозиторий?
Упрощенная версия моего .gitlab-ci.yml
:
variables:
# we have a custom java+maven image, that uses this ENV variable,
# to auto-configure path where to put the local maven repository
MAVEN_LOCAL_REPOSITORY: $CI_PROJECT_DIR/.cache/maven
job-build:
stage: build
image: internal-gitlab/java/maven:3.6-jdk8-alpine
script:
- mvn -B clean package
cache:
key: backend-dependencies
paths:
- .cache/