diff --git a/.gitlab-ci-env.sh b/.gitlab-ci-env.sh
new file mode 100755
index 0000000000000000000000000000000000000000..480da8a0939c5b45f50639a121132bc44c05e249
--- /dev/null
+++ b/.gitlab-ci-env.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# custom environment used during CI tests with gitlab ci
+
+# these paths may depend on the runner used, please be careful and add
+# the necessary if blocks depending on the machine
+
+export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+export PATH=/builds/sonar/lcov-to-cobertura-xml-1.6/lcov_cobertura:$PATH
+export PATH=/builds/sonar/sonar-scanner-2.9.0.670/bin:$PATH
+
+export QUARK_DIR=/builds/install/quark
+export PARSEC_DIR=/builds/install/parsec
+export STARPU_DIR=/builds/install/starpu
+
+if [ "$1" == "simu" ]; then
+  export STARPU_DIR=/builds/install/starpu-simgrid
+  export SIMGRID_DIR=/builds/install/simgrid
+fi
+
+export PKG_CONFIG_PATH=$PARSEC_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
+export PKG_CONFIG_PATH=$STARPU_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6cd75ba0e3aba25be8cc0587e1331b1188da755d..039ed6a61a0bdf4438a247fe62b51a98eb59e8ad 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,8 +1,8 @@
 starpu:
   script:
-    - git submodule init
-    - git submodule update
-    - mkdir build
+    - source .gitlab-ci-env.sh
+    - git submodule update --init --recursive
+    - mkdir -p build
     - cd build
     - cmake ..
     - make -j2
@@ -13,22 +13,20 @@ starpu:
 
 starpu-simgrid:
   script:
-    - git submodule init
-    - git submodule update
-    - mkdir build
+    - source .gitlab-ci-env.sh simu
+    - git submodule update --init --recursive
+    - mkdir -p build
     - cd build
-    - . $HOME/spack/share/spack/setup-env.sh
-    - spack load hwloc && spack load fxt && spack load simgrid && spack load starpu
     - cmake .. -DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF
     - make -j2
     - ctest -V
 
 quark:
   script:
-    - git submodule init
-    - git submodule update
-    - mkdir build
+    - source .gitlab-ci-env.sh
+    - git submodule update --init --recursive
+    - mkdir -p build
     - cd build
     - cmake .. -DCHAMELEON_SCHED_QUARK=ON
     - make -j2
-    - ctest -V -R test_shm_s
\ No newline at end of file
+    - ctest -V -R test_shm_s