diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d24c88e0b3eee641377ff256756f87ec69499407..0abfb7fb64a3e9ec0406e9f8a5b2cbecea125b6e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -76,15 +76,22 @@ spack:setup:
     - ci/setup_spack.sh
   needs:
     - job: spack:checkout
+  after_script:
+    - tar cvzf artifacts_${stack}_${environment}.tgz $stack/environment
   artifacts:
     paths:
-      - ${stack}/environment
+      - artifacts_${stack}_${environment}.tgz
 
 spack:install_compilers:
   stage: compilers
   extends:
     - .parallel_job
     - .spack_cache
+  before_script:
+    - if [ -e artifacts_${stack}_${environment}.tgz ];
+      then
+        tar xvzf artifacts_${stack}_${environment}.tgz;
+      fi
   script:
     - ci/install_compilers.sh
     - source ci/stack_env.sh
@@ -93,18 +100,14 @@ spack:install_compilers:
     - if [ ! -e spack-install-compilers.xml ]; then
         echo "{}" > ${MOUNT_POINT}/spack-install-compilers.xml
       fi
+    - tar cvzf artifacts_${stack}_${environment}.tgz $stack/environment
   artifacts:
     paths:
-      - ${stack}/environment
+      - artifacts_${stack}_${environment}.tgz
     reports:
       junit: spack-install-*.xml
   needs:
     - job: spack:setup
-      parallel:
-        matrix:
-          - environment: $environment
-          - slurm_options: $slurm_options
-          - stack: $stack
   timeout: 5h
 
 spack:concretize:
@@ -112,21 +115,22 @@ spack:concretize:
   extends:
     - .parallel_job
     - .spack_cache
+  before_script:
+    - if [ -e artifacts_${stack}_${environment}.tgz ];
+      then
+        tar xvzf artifacts_${stack}_${environment}.tgz;
+      fi
   script:
     - source ci/stack_env.sh
     - ${STACK_LOCATION}/spack/bin/spack -e ${SPACK_SYSTEM_CONFIG_PATH} config blame
     - ${STACK_LOCATION}/spack/bin/spack -e ${SPACK_SYSTEM_CONFIG_PATH} concretize
-  needs:
-    - job: spack:install_compilers
-      parallel:
-        matrix:
-          - environment: $environment
-          - slurm_options: $slurm_options
-          - stack: $stack
-
+  after_script:
+    - tar cvzf artifacts_${stack}_${environment}.tgz $stack/environment
   artifacts:
     paths:
-      - ${stack}/environment
+      - artifacts_${stack}_${environment}.tgz
+  needs:
+    - job: spack:concretize
   timeout: 2h
 
 spack:install:
@@ -134,6 +138,11 @@ spack:install:
   extends:
     - .parallel_job
     - .spack_cache
+  before_script:
+    - if [ -e artifacts_${stack}_${environment}.tgz ];
+      then
+        tar xvzf artifacts_${stack}_${environment}.tgz;
+      fi
   script:
     - source ci/stack_env.sh
     - ${STACK_LOCATION}/spack/bin/spack -e ${SPACK_SYSTEM_CONFIG_PATH} install
@@ -150,16 +159,12 @@ spack:install:
     - if [ ! -e spack-install.xml ]; then
         echo "{}" > spack-install.xml
       fi
+    - tar cvzf artifacts_${stack}_${environment}.tgz $stack/environment
   needs:
     - job: spack:concretize
-      parallel:
-        matrix:
-          - environment: $environment
-          - slurm_options: $slurm_options
-          - stack: $stack
   artifacts:
     paths:
-      - ${stack}/environment
+      - artifacts_${stack}_${environment}.tgz
     reports:
       junit: spack-install.xml
   timeout: 10h
@@ -174,9 +179,4 @@ spack:mksquashfs:
     - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file stack-${stack}-${environment}-${CI_COMMIT_REF_SLUG}.sqfs "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/stack/${stack}/stack-${stack}-${environment}-${CI_COMMIT_REF_SLUG}.sqfs"'
   needs:
     - job: spack:install
-      parallel:
-        matrix:
-          - environment: $environment
-          - slurm_options: $slurm_options
-          - stack: $stack
   timeout: 10h