diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 645e4300fa086a7d7060a7516b59139448ef94cb..a05e79a9d16faf90d6896a2e914685c60175e014 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,23 +1,47 @@
 ---
 # Install external dependencies
-before_script:
-  - duneci-install-module https://gitlab.dune-project.org/extensions/dune-alugrid.git
-  - duneci-install-module https://gitlab.dune-project.org/extensions/dune-subgrid.git
-  - duneci-install-module https://gitlab.dune-project.org/extensions/dune-vtk.git
-  - duneci-install-module https://gitlab.dune-project.org/fufem/dune-matrix-vector.git
+
+# For release-based jobs, we use corresponding images,
+# that already contain all core and staging dependencies.
+.release_based_job:
+  before_script:
+    - duneci-install-module https://gitlab.dune-project.org/extensions/dune-alugrid.git
+    - duneci-install-module https://gitlab.dune-project.org/extensions/dune-subgrid.git
+    - duneci-install-module https://gitlab.dune-project.org/extensions/dune-vtk.git
+    - duneci-install-module https://gitlab.dune-project.org/fufem/dune-matrix-vector.git
+
+# For branch-based-based jobs, we need to install all dependencies manually.
+.branch_base_job:
+  before_script:
+    - . /duneci/bin/duneci-init-job
+    - duneci-install-module https://gitlab.dune-project.org/core/dune-common.git
+    - duneci-install-module https://gitlab.dune-project.org/core/dune-geometry.git
+    - duneci-install-module https://gitlab.dune-project.org/core/dune-localfunctions.git
+    - duneci-install-module https://gitlab.dune-project.org/staging/dune-uggrid.git
+    - duneci-install-module https://gitlab.dune-project.org/core/dune-grid.git
+    - duneci-install-module https://gitlab.dune-project.org/core/dune-istl.git
+    - duneci-install-module https://gitlab.dune-project.org/staging/dune-typetree.git
+    - duneci-install-module https://gitlab.dune-project.org/staging/dune-functions.git
+    - duneci-install-module https://gitlab.dune-project.org/extensions/dune-alugrid.git
+    - duneci-install-module https://gitlab.dune-project.org/extensions/dune-subgrid.git
+    - duneci-install-module https://gitlab.dune-project.org/extensions/dune-vtk.git
+    - duneci-install-module https://gitlab.dune-project.org/fufem/dune-matrix-vector.git
+
+
 
 # The 2.9 release is the one in Debian 12 ('bookworm', 'stable' at the time of writing)
 dune:2.9 debian-11 gcc-10 C++20:
+  extends: .release_based_job
   variables:
     DUNECI_BRANCH: releases/2.9
   image: registry.dune-project.org/docker/ci/dune:2.9-debian-11-gcc-10-20
-  before_script:
   script: duneci-standard-test
 
 # The 2.10 release is the one in Debian 13 ('trixie', 'testing' at the time of writing)
 # To test against 2.10 we need an image with the corresponding version of the core modules.
 # Unfortunately, there is no 2.10 image with a recent enough compiler.
 dune:2.10 debian-11 gcc-10  C++20:
+  extends: .release_based_job
   variables:
     DUNECI_BRANCH: releases/2.10
   image: registry.dune-project.org/docker/ci/dune:2.10-debian-11-gcc-10-20
@@ -25,11 +49,19 @@ dune:2.10 debian-11 gcc-10  C++20:
 
 # Also test with the current development branch
 dune:git debian-11 clang-13  C++20:
-  image: registry.dune-project.org/docker/ci/dune:git-debian-11-clang-13-20
+  extends: .branch_base_job
+#  image: registry.dune-project.org/docker/ci/dune:git-debian-11-clang-13-20
+  image: registry.dune-project.org/docker/ci/debian:11
+  variables:
+    DUNECI_TOOLCHAIN: clang-13-20
   script: duneci-standard-test
 
 dune:git debian-11 gcc-10  C++20:
-  image: registry.dune-project.org/docker/ci/dune:git-debian-11-gcc-10-20
+  extends: .branch_base_job
+#  image: registry.dune-project.org/docker/ci/dune:git-debian-11-gcc-10-20
+  image: registry.dune-project.org/docker/ci/debian:11
+  variables:
+    DUNECI_TOOLCHAIN: gcc-10-20
   script: duneci-standard-test
 
 # Check for spelling mistakes in text