diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 171c18b8735fe722092fe31b3f8760238f2472e0..9bd19443b64ce648b57dc95fc7cd9b2f5dc52147 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -70,7 +70,7 @@ variables:
 
 
 # A build triggered from a ghc/ghc> pipeline.
-build-pipeline:
+.build-pipeline:
   extends: .build
   before_script:
     - GHC_TARBALL=$(nix run -f ./ci -c discover_tarball.sh)
@@ -79,8 +79,19 @@ build-pipeline:
       when: always
     - when: never
 
+build-pipeline:
+  extends: .build-pipeline
+  variables:
+    BUILD_MODE: FULL
+
+test-pipeline:
+  extends: .build-pipeline
+  variables:
+    BUILD_MODE: TEST
+  allow_failure: true
+
 # Build against the master branch
-build-master:
+.build-master:
   extends: .build
   variables:
     GHC_TARBALL: "https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/master/raw/ghc-x86_64-linux-fedora33-release.tar.xz?job=x86_64-linux-fedora33-release"
@@ -90,8 +101,19 @@ build-master:
       when: never
     - when: always
 
+build-master:
+  extends: .build-master
+  variables:
+    BUILD_MODE: FULL
+
+test-master:
+  extends: .build-master
+  variables:
+    BUILD_MODE: TEST
+  allow_failure: true
+
 # Build against the 9.2 branch
-build-9.2:
+.build-9.2:
   extends: .build
   variables:
     GHC_TARBALL: "https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/ghc-9.2/raw/ghc-x86_64-fedora27-linux.tar.xz?job=validate-x86_64-linux-fedora27"
@@ -101,8 +123,19 @@ build-9.2:
       when: never
     - when: always
 
+build-9.2:
+  extends: .build-9.2
+  variables:
+    BUILD_MODE: FULL
+
+test-9.2:
+  extends: .build-9.2
+  variables:
+    BUILD_MODE: TEST
+  allow_failure: true
+
 # Build against the 9.4 branch
-build-9.4:
+.build-9.4:
   extends: .build
   variables:
     GHC_TARBALL: "https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/ghc-9.4/raw/ghc-x86_64-linux-fedora33-release.tar.xz?job=x86_64-linux-fedora33-release"
@@ -112,14 +145,21 @@ build-9.4:
       when: never
     - when: always
 
+build-9.4:
+  extends: .build-9.4
+  variables:
+    BUILD_MODE: FULL
+
+test-9.4:
+  extends: .build-9.4
+  variables:
+    BUILD_MODE: TEST
+  allow_failure: true
+
 .build:
   stage: test
   interruptible: true
 
-  parallel:
-    matrix:
-      - BUILD_MODE: [FULL, TEST]
-
   tags:
     - x86_64-linux