diff --git a/build-common.yml b/build-common.yml
index e0a0948b955e01b42bb1269401cefb8fc8a2ca19..628bc034896a4b4cb8afb5af748e7c2c1625f398 100644
--- a/build-common.yml
+++ b/build-common.yml
@@ -99,13 +99,10 @@ workflow:
     reports:
       dotenv: build.env
     paths: &artifacts_paths
-      # List of all potential artifact paths. Not all of them are present in each build
-      # configuration, e.g. the SDK path exists in SDK builds only. We still specify all
-      # of them here in order to have a generic build class for all builds. Pathsspecs
-      # which do not exist in a specific configuration are simply ignored by GitLab.
-      - build-*/tmp/deploy/images/**/*
+      - ${ARTIFACTS_PATH}
+      # The license manifest is not available on all builds (e.g. SDK builds), but if it
+      # exists, we're adding it to the artifacts.
       - build-*/tmp/deploy/licenses/**/license.manifest
-      - build-*/tmp/deploy/sdk/*
       - build.env
   cache:
     # Cache the build artifacts for subsequent stages in the same pipeline
diff --git a/build-jobs-ci-test.yml.jinja2 b/build-jobs-ci-test.yml.jinja2
index ce9603f7f0a92bd9bf64c2e6dab841ecbf13d0f2..f5a5ce5a5e545cd47bfba82fa7a76c8842339f12 100644
--- a/build-jobs-ci-test.yml.jinja2
+++ b/build-jobs-ci-test.yml.jinja2
@@ -95,6 +95,8 @@ build:check-foo-branch:
       echo "ERROR: Branches do not match!"
       exit 1
     fi
+  artifacts: null
+  cache: null
 
 .simulate_build:
   extends:
@@ -120,6 +122,7 @@ simulate-build-seco-mx6:
     # branch, because we don't always execute the full pipeline on the master branches.
     # In those cases the actual build job does not exist, which results in a 404 error.
     BUILD_ARTIFACTS: https://git.seco.com/seco-ne/yocto/manifest/-/jobs/artifacts/kirkstone/3.0/download?job=build-seco-mx6
+    ARTIFACTS_PATH: build-*/tmp/deploy/images/**/*
   cache:
     - !reference [.buildbase, cache]
     # Additionally cache the build artifacts for re-runs of this job in other pipelines
@@ -135,6 +138,7 @@ simulate-buildsdk-seco-mx6:
       allow_failure: true
   variables:
     BUILD_ARTIFACTS: https://git.seco.com/seco-ne/yocto/manifest/-/jobs/artifacts/kirkstone/3.0/download?job=buildsdk-seco-mx6
+    ARTIFACTS_PATH: build-*/tmp/deploy/sdk/*
   cache:
     - !reference [.buildbase, cache]
     # Additionally cache the build artifacts for re-runs of this job in other pipelines
diff --git a/build-jobs-yocto.yml.jinja2 b/build-jobs-yocto.yml.jinja2
index c63901374ed581c6b5cac18e09b19a8175a314bc..da4172cd52df3385d48027f2f9b2c1c8e505d1d9 100644
--- a/build-jobs-yocto.yml.jinja2
+++ b/build-jobs-yocto.yml.jinja2
@@ -57,6 +57,7 @@ build-{{ machine }}:
     CI_PARAM_DISTRO: {{ CI_PARAM_DISTRO }}
     CI_PARAM_IMAGE: {{ CI_PARAM_IMAGE }}
     INSTALLSCRIPT: "fng-install.sh"
+    ARTIFACTS_PATH: build-*/tmp/deploy/images/**/*
 
 # Build jobs for the sdk
 buildsdk-{{ machine }}:
@@ -65,6 +66,7 @@ buildsdk-{{ machine }}:
     CI_PARAM_MACHINE: {{ machine }}
     CI_PARAM_DISTRO: {{ CI_PARAM_DISTRO }}
     CI_PARAM_IMAGE: {{ CI_PARAM_IMAGE }}
+    ARTIFACTS_PATH: build-*/tmp/deploy/sdk/*
 {% endif %}
 
 {% if CI_PARAM_IMAGE_FNG %}
@@ -76,6 +78,7 @@ build-{{ machine }}-fngsystem:
     CI_PARAM_DISTRO: {{ CI_PARAM_DISTRO_FNG }}
     CI_PARAM_IMAGE: {{ CI_PARAM_IMAGE_FNG }}
     INSTALLSCRIPT: "fngsystem-self-update.sh"
+    ARTIFACTS_PATH: build-*/tmp/deploy/images/**/*
 {% endif %}