diff --git a/manifest-pipeline-yocto.yml b/manifest-pipeline-yocto.yml
index a3fad6c1887945ee9ec89bcda242df7d5d90c124..9473f1cd4f602e0cb1909ff0e81b6a7086a58d7e 100644
--- a/manifest-pipeline-yocto.yml
+++ b/manifest-pipeline-yocto.yml
@@ -28,16 +28,17 @@ variables:
 
 generate-build-jobs:
   variables:
-    # Default image and distro
-    CI_PARAM_IMAGE: guf-image
-    CI_PARAM_DISTRO: guf-wayland
-
-    # Flash-N-Go image and distro
-    # In the past, the buildfng job overwrote the image and distro itself. Due to the
-    # transition to the new seconorth names, image and distro for the buildfng must be
-    # settable from outside of the job.
-    CI_PARAM_IMAGE_FNG: fngsystem-image
-    CI_PARAM_DISTRO_FNG: guf-fngsystem
-
     # List of machines to build images for
     CI_PARAM_MACHINES: imx6guf imx6ullguf imx8mguf imx8mpguf
+  parallel:
+    matrix: &build_jobs
+      # Default image and distro
+      - CI_PARAM_IMAGE: guf-image
+        CI_PARAM_DISTRO: guf-wayland
+      # Flash-N-Go image and distro
+      - CI_PARAM_IMAGE: fngsystem-image
+        CI_PARAM_DISTRO: guf-fngsystem
+
+build-jobs:
+  parallel:
+    matrix: *build_jobs
diff --git a/manifest-pipeline.yml b/manifest-pipeline.yml
index 88f79343bd2e68fdee67b8ed0a762e02e5a51f5e..baeb2796a25c2b4cfaa5d3057f5adb68131eb562 100644
--- a/manifest-pipeline.yml
+++ b/manifest-pipeline.yml
@@ -70,7 +70,7 @@ generate-build-jobs:
     # to explicitly pass any of them as command line arguments.
     - .gitlab-ci/scripts/generate_job_from_template.py
               --template=.gitlab-ci/${BUILD_JOBS_TEMPLATE}
-              > build-jobs.yml
+              > build-jobs-${CI_PARAM_DISTRO}-${CI_PARAM_IMAGE}.yml
   artifacts:
     expire_in: 4 weeks
     paths:
@@ -82,7 +82,7 @@ build-jobs:
   needs: ["generate-build-jobs"]
   trigger:
     include:
-      - artifact: build-jobs.yml
+      - artifact: build-jobs-${CI_PARAM_DISTRO}-${CI_PARAM_IMAGE}.yml
         job: generate-build-jobs
     strategy: depend