diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0c2653bc960f5af91c829075209548b192a03b0e..45fcd7e4112a7f0d498fd7ed954a945c34e50be4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -100,33 +100,33 @@ yamllint:
 # --------------------------------------------------------------------------------------
 # Stage: build
 # --------------------------------------------------------------------------------------
-buildimage:
+.buildimage:
   extends:
     - .buildbase
     - .build
+  variables:
+    CI_PARAM_IMAGE: guf-image
+    CI_PARAM_DISTRO: guf-wayland
   needs: []
-  stage: image
-  parallel:
-    matrix:
-      # Yocto OS
-      - CI_PARAM_MACHINE: [imx6guf, imx6ullguf, imx8mguf]
-        CI_PARAM_DISTRO: [guf-wayland]
-        CI_PARAM_IMAGE: [guf-image]
-      # FNG System
-      - CI_PARAM_MACHINE: [imx6guf, imx6ullguf, imx8mguf]
-        CI_PARAM_DISTRO: [guf-fngsystem]
-        CI_PARAM_IMAGE: [fngsystem-image]
+
+.buildfng:
+  extends:
+    - .buildimage
+  variables:
+    CI_PARAM_IMAGE: fngsystem-image
+    CI_PARAM_DISTRO: guf-fngsystem
+
+# ---------------------------------------------------------------------------------------
 
 # --------------------------------------------------------------------------------------
 # Stage: deploy
 # --------------------------------------------------------------------------------------
-deployimage:
+.deployimage:
   variables:
     GIT_SUBMODULE_STRATEGY: normal
   extends:
     - .buildbase
     - .package
-  stage: deploy
   when: manual
   script:
     - echo
@@ -139,10 +139,8 @@ deployimage:
 # --------------------------------------------------------------------------------------
 buildsdk:
   extends:
-    - .buildbase
-    - .build
+    - .buildimage
     - .package_sdk
-  needs: []
   stage: sdk
   when: manual
   variables:
@@ -150,10 +148,6 @@ buildsdk:
   parallel:
     matrix:
       - CI_PARAM_MACHINE: [imx6guf, imx6ullguf, imx8mguf]
-        CI_PARAM_DISTRO: [guf-wayland]
-        CI_PARAM_IMAGE: [guf-image]
-
-# --------------------------------------------------------------------------------------
 # Stage: documentation
 # --------------------------------------------------------------------------------------
 changelog:
@@ -173,3 +167,75 @@ changelog:
     expire_in: 4 weeks
     paths:
       - "changelog.md"
+
+# ---------------------------------------------------------------------------------------
+# Actual jobs
+# ---------------------------------------------------------------------------------------
+
+build:imx6guf:guf-wayland:
+  extends: .buildimage
+  stage: image
+  variables:
+    CI_PARAM_MACHINE: imx6guf
+
+build:imx6ullguf:guf-wayland:
+  extends: .buildimage
+  stage: image
+  variables:
+    CI_PARAM_MACHINE: imx6ullguf
+
+build:imx8mguf:guf-wayland:
+  extends: .buildimage
+  stage: image
+  variables:
+    CI_PARAM_MACHINE: imx8mguf
+
+build:imx6guf:guf-fngsystem:
+  extends: .buildfng
+  stage: image
+  variables:
+    CI_PARAM_MACHINE: imx6guf
+
+build:imx6ullguf:guf-fngsystem:
+  extends: .buildfng
+  stage: image
+  variables:
+    CI_PARAM_MACHINE: imx6ullguf
+
+build:imx8mguf:guf-fngsystem:
+  extends: .buildfng
+  stage: image
+  variables:
+    CI_PARAM_MACHINE: imx8mguf
+
+# -------------------------------------------------------------------------------------
+
+deployimage:imx6guf:guf-wayland:
+  extends: .deployimage
+  stage: deploy
+  needs: ["build:imx6guf:guf-wayland", "changelog"]
+
+deployimage:imx6ullguf:guf-wayland:
+  extends: .deployimage
+  stage: deploy
+  needs: ["build:imx6ullguf:guf-wayland", "changelog"]
+
+deployimage:imx8mguf:guf-wayland:
+  extends: .deployimage
+  stage: deploy
+  needs: ["build:imx8mguf:guf-wayland", "changelog"]
+
+deployimage:imx6guf:guf-fngsystem:
+  extends: .deployimage
+  stage: deploy
+  needs: ["build:imx6guf:guf-fngsystem", "changelog"]
+
+deployimage:imx6ullguf:guf-fngsystem:
+  extends: .deployimage
+  stage: deploy
+  needs: ["build:imx6ullguf:guf-fngsystem", "changelog"]
+
+deployimage:imx8mguf:guf-fngsystem:
+  extends: .deployimage
+  stage: deploy
+  needs: ["build:imx8mguf:guf-fngsystem", "changelog"]