From ba82d4cf4e9ef733311e2adc6bb9d24b6d7634eb Mon Sep 17 00:00:00 2001
From: Pierre Smeyers <pierre.smeyers@gmail.com>
Date: Tue, 9 Aug 2022 15:25:32 +0200
Subject: [PATCH] feat: manage Sonar task cache in GitLab

---
 templates/gitlab-ci-maven.yml | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/templates/gitlab-ci-maven.yml b/templates/gitlab-ci-maven.yml
index 4f7a7ac..9e5b374 100644
--- a/templates/gitlab-ci-maven.yml
+++ b/templates/gitlab-ci-maven.yml
@@ -495,9 +495,14 @@ mvn-sonar:
   stage: test
   extends: .mvn-base
   variables:
-    # Tells git to fetch all the branches of the project, required by the analysis task
-    # see: https://docs.sonarqube.org/8.5/analysis/gitlab-cicd/#header-2
-    GIT_DEPTH: 0
+    # see: https://docs.sonarqube.org/latest/analysis/gitlab-integration/#header-4
+    SONAR_USER_HOME: "${CI_PROJECT_DIR}/${MAVEN_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
+    GIT_DEPTH: 0 # Tells git to fetch all the branches of the project, required by the analysis task
+  cache:
+    key: "$CI_COMMIT_REF_SLUG-maven-sonar"
+    paths:
+      - "${MAVEN_PROJECT_DIR}/${MAVEN_CFG_DIR}/repository"
+      - "${MAVEN_PROJECT_DIR}/.sonar/cache"
   script:
     - sonar_autodetect_mr
     - |
-- 
GitLab