From d492a2f5a4cb60b68ba11361e80fe91922e00e1d Mon Sep 17 00:00:00 2001
From: Florent Pruvost <florent.pruvost@inria.fr>
Date: Tue, 18 Mar 2025 15:19:44 +0100
Subject: [PATCH] gitlab-ci: use GIT_CLONE_PATH to clone in a fixed directory
 and thus be able to use any of the shared runners

---
 .gitlab/build.yml               | 8 ++------
 .gitlab/common.yml              | 5 ++++-
 .gitlab/coverage.yml            | 5 ++++-
 .gitlab/coverity.yml            | 1 +
 .gitlab/docker.yml              | 1 +
 .gitlab/pages.yml               | 1 +
 .gitlab/preliminary.yml         | 1 +
 .gitlab/release.yml             | 1 +
 .gitlab/sonarqube.yml           | 2 ++
 .gitlab/test_hmat.yml           | 1 -
 .gitlab/test_openmp.yml         | 1 -
 .gitlab/test_parsec.yml         | 1 -
 .gitlab/test_quark.yml          | 1 -
 .gitlab/test_starpu.yml         | 1 -
 .gitlab/test_starpu_simgrid.yml | 1 -
 15 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/.gitlab/build.yml b/.gitlab/build.yml
index 1cc7ef411..b05f37476 100644
--- a/.gitlab/build.yml
+++ b/.gitlab/build.yml
@@ -12,7 +12,9 @@
 
 .build_script_linux:
   extends: .build_script_common
+  tags: ['ci.inria.fr', 'linux']
   variables:
+    GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
     SYSTEM: linux
   script:
     - bash .gitlab/build.sh | tee ${LOGNAME}.log
@@ -20,7 +22,6 @@
 build_hmat:
   extends: .build_script_linux
   variables:
-    SYSTEM: linux
     VERSION: hmat
     LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
     BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=OFF -DCHAMELEON_USE_MPI=ON -DCHAMELEON_USE_HMATOSS=ON"
@@ -28,7 +29,6 @@ build_hmat:
 build_openmp:
   extends: .build_script_linux
   variables:
-    SYSTEM: linux
     VERSION: openmp
     LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
     BUILD_OPTIONS: "-DCHAMELEON_SCHED=OPENMP"
@@ -36,7 +36,6 @@ build_openmp:
 build_parsec:
   extends: .build_script_linux
   variables:
-    SYSTEM: linux
     VERSION: parsec
     LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
     BUILD_OPTIONS: "-DCHAMELEON_SCHED=PARSEC"
@@ -44,7 +43,6 @@ build_parsec:
 build_quark:
   extends: .build_script_linux
   variables:
-    SYSTEM: linux
     VERSION: quark
     LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
     BUILD_OPTIONS: "-DCHAMELEON_SCHED=QUARK"
@@ -52,7 +50,6 @@ build_quark:
 build_starpu:
   extends: .build_script_linux
   variables:
-    SYSTEM: linux
     VERSION: starpu
     LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
     BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=OFF -DCHAMELEON_USE_MPI=ON"
@@ -89,7 +86,6 @@ build_starpu_hip:
 build_starpu_simgrid:
   extends: .build_script_linux
   variables:
-    SYSTEM: linux
     VERSION: starpu_simgrid
     LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
     CHAM_CI_ENV_ARG: simgrid
diff --git a/.gitlab/common.yml b/.gitlab/common.yml
index f4e30eb4b..9b1c50fc4 100644
--- a/.gitlab/common.yml
+++ b/.gitlab/common.yml
@@ -4,7 +4,6 @@
 ---
 default:
   image: $CI_REGISTRY_IMAGE
-  tags: ['ci.inria.fr', 'linux', 'large'] # gitlab instance runner (i.e. docker on linux)
   interruptible: true
 
 variables:
@@ -31,6 +30,10 @@ variables:
 
 .test_script_linux:
   stage: test
+  tags: ['ci.inria.fr', 'linux', 'large']
+  variables:
+    GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
+    SYSTEM: linux
   script:
     - bash .gitlab/test.sh | tee ${LOGNAME}.log
   artifacts:
diff --git a/.gitlab/coverage.yml b/.gitlab/coverage.yml
index cbe0a2aca..dfc3a3d93 100644
--- a/.gitlab/coverage.yml
+++ b/.gitlab/coverage.yml
@@ -7,8 +7,11 @@
 ---
 .coverage:
   stage: coverage
+  tags: ['ci.inria.fr', 'linux']
+  variables:
+    GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
   script:
-    - tools/coverage.sh
+    - ./tools/coverage.sh
   coverage: /^\s*lines......:\s*\d+.\d+\%/
   artifacts:
     name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
diff --git a/.gitlab/coverity.yml b/.gitlab/coverity.yml
index 8a2fdd0b3..af2526f18 100644
--- a/.gitlab/coverity.yml
+++ b/.gitlab/coverity.yml
@@ -1,6 +1,7 @@
 ---
 coverity:
   stage: analyze
+  tags: ['ci.inria.fr', 'linux', 'large']
   rules:
     - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^ci-.*$/) && $CI_PIPELINE_SOURCE != "schedule"
     - if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/)
diff --git a/.gitlab/docker.yml b/.gitlab/docker.yml
index f2510aee3..af387951a 100644
--- a/.gitlab/docker.yml
+++ b/.gitlab/docker.yml
@@ -1,6 +1,7 @@
 ---
 .docker_script_common:
   stage: docker
+  tags: ['ci.inria.fr', 'linux']
   image: docker
   when: manual
   before_script:
diff --git a/.gitlab/pages.yml b/.gitlab/pages.yml
index 3e533f379..af8f47aec 100644
--- a/.gitlab/pages.yml
+++ b/.gitlab/pages.yml
@@ -1,6 +1,7 @@
 ---
 pages:
   stage: deploy
+  tags: ['ci.inria.fr', 'linux']
   image: $CI_REGISTRY_IMAGE/pages
   extends: .only-master
   needs: [coverage_master]
diff --git a/.gitlab/preliminary.yml b/.gitlab/preliminary.yml
index aba737c63..50694f328 100644
--- a/.gitlab/preliminary.yml
+++ b/.gitlab/preliminary.yml
@@ -4,6 +4,7 @@
 ---
 preliminary_checks:
   stage: pre
+  tags: ['ci.inria.fr', 'linux']
   image: registry.gitlab.inria.fr/solverstack/docker/pre
   rules:
     - if: $CI_PIPELINE_SOURCE == "merge_request_event"
diff --git a/.gitlab/release.yml b/.gitlab/release.yml
index 9ccd1ef98..e21291cd5 100644
--- a/.gitlab/release.yml
+++ b/.gitlab/release.yml
@@ -1,6 +1,7 @@
 ---
 release:
   stage: deploy
+  tags: ['ci.inria.fr', 'linux']
   rules:
     - if: $CI_COMMIT_TAG =~ /^v[0-9]\.[0-9]\.[0-9]$/ && $CI_PIPELINE_SOURCE != "schedule"
   dependencies: []
diff --git a/.gitlab/sonarqube.yml b/.gitlab/sonarqube.yml
index dcc43e95e..c87120606 100644
--- a/.gitlab/sonarqube.yml
+++ b/.gitlab/sonarqube.yml
@@ -1,7 +1,9 @@
 ---
 .sonarqube:
   stage: analyze
+  tags: ['ci.inria.fr', 'linux']
   variables:
+    GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
     GIT_CONFIG_COUNT: 1
     GIT_CONFIG_KEY_0: "safe.directory"
     GIT_CONFIG_VALUE_0: "*"
diff --git a/.gitlab/test_hmat.yml b/.gitlab/test_hmat.yml
index 0e00d32db..211c3651e 100644
--- a/.gitlab/test_hmat.yml
+++ b/.gitlab/test_hmat.yml
@@ -5,7 +5,6 @@ test_hmat:
     - .only-master-mr
   needs: [build_hmat]
   variables:
-    SYSTEM: linux
     VERSION: hmat
     CATEGORY: none
     PRECISION: all
diff --git a/.gitlab/test_openmp.yml b/.gitlab/test_openmp.yml
index 923e7ebb3..46c18f2af 100644
--- a/.gitlab/test_openmp.yml
+++ b/.gitlab/test_openmp.yml
@@ -3,7 +3,6 @@
   extends: .test_script_linux
   needs: [build_openmp]
   variables:
-    SYSTEM: linux
     VERSION: openmp
     CATEGORY: shm
     LOGNAME: "chameleon-test-${SYSTEM}-${VERSION}-${CATEGORY}-${PRECISION}"
diff --git a/.gitlab/test_parsec.yml b/.gitlab/test_parsec.yml
index b131e8b69..ba5af875b 100644
--- a/.gitlab/test_parsec.yml
+++ b/.gitlab/test_parsec.yml
@@ -3,7 +3,6 @@
   extends: .test_script_linux
   needs: [build_parsec]
   variables:
-    SYSTEM: linux
     VERSION: parsec
     CATEGORY: shm
     LOGNAME: "chameleon-test-${SYSTEM}-${VERSION}-${CATEGORY}-${PRECISION}"
diff --git a/.gitlab/test_quark.yml b/.gitlab/test_quark.yml
index 0bd998d9b..ec8167055 100644
--- a/.gitlab/test_quark.yml
+++ b/.gitlab/test_quark.yml
@@ -3,7 +3,6 @@
   extends: .test_script_linux
   needs: [build_quark]
   variables:
-    SYSTEM: linux
     VERSION: quark
     CATEGORY: shm
     LOGNAME: "chameleon-test-${SYSTEM}-${VERSION}-${CATEGORY}-${PRECISION}"
diff --git a/.gitlab/test_starpu.yml b/.gitlab/test_starpu.yml
index 182872624..6eec74f4e 100644
--- a/.gitlab/test_starpu.yml
+++ b/.gitlab/test_starpu.yml
@@ -3,7 +3,6 @@
   extends: .test_script_linux
   needs: [build_starpu]
   variables:
-    SYSTEM: linux
     VERSION: starpu
     LOGNAME: "chameleon-test-${SYSTEM}-${VERSION}-${CATEGORY}-${PRECISION}"
     TESTS_RESTRICTION: "-R _${CATEGORY}_${PRECISION}|example"
diff --git a/.gitlab/test_starpu_simgrid.yml b/.gitlab/test_starpu_simgrid.yml
index 988ada631..0fc98d156 100644
--- a/.gitlab/test_starpu_simgrid.yml
+++ b/.gitlab/test_starpu_simgrid.yml
@@ -7,7 +7,6 @@ test_starpu_simgrid_simu_all:
   variables:
     STARPU_WORKERS_NOBIND: 1
     CHAM_CI_ENV_ARG: simgrid
-    SYSTEM: linux
     VERSION: starpu_simgrid
     CATEGORY: simu
     PRECISION: all
-- 
GitLab