diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 29167d820f3a0572f71dc9a8260c29ea673cda93..9c655a0433455e20814c052fccf187a683886517 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -169,6 +169,19 @@ include:
         sed -i "s|^libdir=.*|libdir='${LIBCHECK_ROOT}/lib'|" $(find "${LIBCHECK_ROOT}" -name '*.la')
       fi
   script:
+    - mkdir build && cd build
+    - >
+      cmake ..
+      -DBUILD_TESTING:BOOL=ON
+      -DCheck_ROOT="${LIBCHECK_ROOT}"
+      -DMTIME_ENABLE_PYTHON:BOOL=ON
+      -DCMAKE_INSTALL_PREFIX:PATH="${INSTALL_PREFIX}"
+      -G"${CMAKE_GENERATOR}"
+    - ${MAKE_CMD} 2>&1 | tee "${BUILD_LOG}"
+    - ${MAKE_CMD} test
+    - ${MAKE_CMD} install
+    - py_lib_prefix=$(dirname $(find "${INSTALL_PREFIX}" -path '*/mtime/__init__.py' -exec dirname {} + -quit))
+    - PYTHONPATH="${py_lib_prefix}${PYTHONPATH+":${PYTHONPATH}"}" python3 test/test_python.sh
     - |
       # Check if there are compiler warnings
       compiler_warnings="${CI_PROJECT_DIR}/compiler_warnings.txt"
@@ -198,51 +211,30 @@ include:
       when: manual
     - when: always
   interruptible: true
+  artifacts:
+    when: on_failure
+    paths:
+      - "**/CMakeCache.txt"
+      - "**/LastTest.log"
   cache:
     policy: pull
     key: ${LIBCHECK_SHA256}
     paths:
       - ${LIBCHECK_ROOT}
 
-.common_cmake:
+.common_makefiles:
   extends: .common
-  variables:
-    CMAKE_EXTRA_ARGS:
-  script:
-    - mkdir build && cd build
-    - >
-      cmake ..
-      -DBUILD_TESTING:BOOL=ON
-      -DCheck_ROOT="${LIBCHECK_ROOT}"
-      -DMTIME_ENABLE_PYTHON:BOOL=ON
-      -DCMAKE_INSTALL_PREFIX:PATH="${INSTALL_PREFIX}"
-      -G"${CMAKE_GENERATOR}"
-      ${CMAKE_EXTRA_ARGS}
-    - ${MAKE_CMD} 2>&1 | tee "${BUILD_LOG}"
-    - ${MAKE_CMD} test
-    - ${MAKE_CMD} install
-    - py_lib_prefix=$(dirname $(find "${INSTALL_PREFIX}" -path '*/mtime/__init__.py' -exec dirname {} + -quit))
-    - PYTHONPATH="${py_lib_prefix}${PYTHONPATH+":${PYTHONPATH}"}" python3 test/test_python.sh
-    - !reference [.common, script]
-  artifacts:
-    when: on_failure
-    paths:
-      - "**/CMakeCache.txt"
-      - "**/LastTest.log"
-
-.common_cmake_makefiles:
-  extends: .common_cmake
   variables:
     CMAKE_GENERATOR: Unix Makefiles
     MAKE_CMD: make --jobs=${JOB_COUNT} VERBOSE=1
 
-.common_cmake_ninja:
-  extends: .common_cmake
+.common_ninja:
+  extends: .common
   variables:
     CMAKE_GENERATOR: Ninja
     MAKE_CMD: ninja -j ${JOB_COUNT} --verbose
   before_script:
-    - !reference [.common_cmake, before_script]
+    - !reference [.common, before_script]
     - export PATH="/sw/spack-levante/ninja-1.11.1-ahbo5l/bin:${PATH}"
 
 .check_gcc:
@@ -276,36 +268,36 @@ include:
 
 Check with GCC 11.2.0 (Ninja):
   extends:
-    - .common_cmake_ninja
+    - .common_ninja
     - .check_gcc
   before_script:
-    - !reference [.common_cmake_ninja, before_script]
+    - !reference [.common_ninja, before_script]
     - !reference [.check_gcc, before_script]
   cache:
     policy: pull-push
 
 Check with Intel 2021.5.0 (Unix Makefiles):
   extends:
-    - .common_cmake_makefiles
+    - .common_makefiles
     - .check_intel
   before_script:
-    - !reference [.common_cmake_makefiles, before_script]
+    - !reference [.common_makefiles, before_script]
     - !reference [.check_intel, before_script]
 
 Check with NVHPC 24.7 (Ninja):
   extends:
-    - .common_cmake_ninja
+    - .common_ninja
     - .check_nvhpc
   before_script:
-    - !reference [.common_cmake_ninja, before_script]
+    - !reference [.common_ninja, before_script]
     - !reference [.check_nvhpc, before_script]
 
 Check with NAG 7.1.7114 (Unix Makefiles):
   extends:
-    - .common_cmake_makefiles
+    - .common_makefiles
     - .check_nag
   before_script:
-    - !reference [.common_cmake_makefiles, before_script]
+    - !reference [.common_makefiles, before_script]
     - !reference [.check_nag, before_script]
     # nagfor is supposed to use non-default gcc:
     - export FFLAGS="-Wc=`which gcc` $FFLAGS"