1

My Gitlab CI/CD job has a Maven-cache defined which does not seem to work. The /cache directory as well as the path directory are empty.

This is my .gitlab-ci-yaml:

variables:
  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"

.cache-m2: &cache-m2
  cache:
    - key: "mavenRepo"
      paths:
        - .m2/repository

test_backend:
  stage: test
  image: maven:3-openjdk-11
  tags:
    - docker
  <<: *cache-m2
  script:
    - ls -al .m2/repository || true
    - mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout
    - mvn $MAVEN_CLI_OPTS clean test 

This is the job log:

Running with gitlab-runner 13.12.0 (7a6612da)
  on gitlab-runner-gitlab-runner-54b9d6b99 Ejwdvsgc
Resolving secrets 00:00
Preparing the "kubernetes" executor 00:00
Using Kubernetes namespace: gitlab-runner
Using Kubernetes executor with image maven:3-openjdk-11 ...
Preparing environment 00:03
WARNING: Pulling GitLab Runner helper image from Docker Hub. Helper image is migrating to registry.gitlab.com, for more information see https://docs.gitlab.com/runner/configuration/advanced-configuration.html#migrate-helper-image-to-registrygitlabcom
Waiting for pod gitlab-runner/runner-ejwdvsgc-project-663-concurrent-2chxfp to be running, status is Pending
Running on runner-ejwdvsgc-project-663-concurrent-2chxfp via gitlab-runner-gitlab-runner-54b9d6b99-w8dbf...
Getting source from Git repository 00:02
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/Ejwdvsgc/2/t1/mvp/.git/
Created fresh repository.
Checking out 07e45667 as gitlab-test...
Skipping Git submodules setup
Restoring cache 00:01
No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted. 
Checking cache for mavenRepo-4...
Successfully extracted cache
Executing "step_script" stage of the job script
$ ls -al .m2/repository || true
ls: cannot access '.m2/repository': No such file or directory
$ mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout
/builds/Ejwdvsgc/2/t1/mvp/.m2/repository
...
...
Saving cache for successful job 00:05
Creating cache mavenRepo-4...
.m2/repository: found 4572 matching files and directories 
No URL provided, cache will be not uploaded to shared cache server. Cache will be stored only locally. 
Created cache

It looks like a cache was found (Checking cache for mavenRepo-4) and it was extracted (Successfully extracted cache) but the directories do not exists.

What am I doing wrong?

Datz
  • 3,156
  • 3
  • 22
  • 50
  • The location of the cache depends on the OS and executor. [exemple for docker executor on Windows](https://stackoverflow.com/questions/73532026/cache-location-with-gitlab-runner-and-docker-executor-on-windows/73532027#73532027). – Gabriel Devillers Aug 29 '22 at 16:45

0 Answers0