From 24cdf05e242d314ebcb534bdbb499c5e43edf93d Mon Sep 17 00:00:00 2001
From: Jakob Fritz <j.fritz@fz-juelich.de>
Date: Wed, 24 Apr 2024 09:11:38 +0200
Subject: [PATCH] Split installation and running into two jobs

As one of the two jobs often failed during installation, while the other one succeeded. So it might be a race condition. Therefore, splitting installation and usage into separate jobs
---
 .gitlab-ci.yml | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 63ee4818e..fa2beb338 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,8 +10,34 @@ variables:
   JUWELS_ACCOUNT: "cstma"
 
 
+prepare_JUWELS:
+  stage: benchmark
+  rules:
+    - if: $CI_COMMIT_MESSAGE !~ /.*\[CI-no-benchmarks\]/
+  tags:
+    - jacamar
+    - juwels
+    - login
+    - shell
+  script:
+    - mkdir -p benchmarks
+    # load the latest Python module (currently 3.11)
+    - module --force purge
+    - module load Stages/2024
+    - module load GCC
+    - module load OpenMPI
+    - module load FFTW
+    - module load mpi4py
+    - module load SciPy-Stack
+    - module load CuPy
+    - pip install -e .
+    - pip install pytest-benchmark coverage
+
+
 test_JUWELS:
   stage: benchmark
+  needs:
+    - prepare_JUWELS
   rules:
     - if: $CI_COMMIT_MESSAGE !~ /.*\[CI-no-benchmarks\]/
   tags:
@@ -39,8 +65,6 @@ test_JUWELS:
     - module load mpi4py
     - module load SciPy-Stack
     - module load CuPy
-    - pip install -e .
-    - pip install pytest-benchmark coverage
   script:
     # - touch benchmarks/output.json
     - echo $SYSTEMNAME
-- 
GitLab