diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 28ee2d4822f16c183386921e1300f5c6cd785844..b4869e10f88625b9bdfea9ab76a7f3b7ba357f9d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,18 +12,37 @@ stages:
   - trigger
 
 before_script:
-  - rm -rf ../CORE
-  - rm -rf ../MODELS
-  - git clone https://git.ecdf.ed.ac.uk/tadah/core.git ../CORE
-  - git clone https://git.ecdf.ed.ac.uk/tadah/models.git ../MODELS
-  - pwd
-  - ls -l
   - mkdir -p ${DEBUG_DIR}
   - mkdir -p ${RELEASE_DIR}
   - export OMP_NUM_THREADS=${CPU_SIM}
 
+build-debug-core:
+  stage: build
+  script:
+    - rm -rf ../CORE
+    - git clone https://git.ecdf.ed.ac.uk/tadah/core.git ../CORE
+    - cd ../CORE
+    - mkdir -p ${DEBUG_DIR}
+    - cd ${DEBUG_DIR}
+    - cmake .. -DCMAKE_CXX_FLAGS="-g -O1 -fsanitize=address -Wall -Wpedantic -pedantic-errors -Wextra --coverage"
+    - make -j ${CPU_BUILD}
+
+build-debug-models:
+  stage: build
+  script:
+    - rm -rf ../MODELS
+    - git clone https://git.ecdf.ed.ac.uk/tadah/models.git ../MODELS
+    - cd ../MODELS
+    - mkdir -p ${DEBUG_DIR}
+    - cd ${DEBUG_DIR}
+    - cmake .. -DCMAKE_CXX_FLAGS="-g -O1 -fsanitize=address -Wall -Wpedantic -pedantic-errors -Wextra --coverage"
+    - make -j ${CPU_BUILD}
+
 build-debug:
   stage: build
+  needs:
+    job: build-debug-core
+    job: build-debug-models
   script:
     - cd ${DEBUG_DIR}
     - cmake .. -DCMAKE_CXX_FLAGS="-g -O1 -fsanitize=address -Wall -Wpedantic -pedantic-errors -Wextra --coverage"