diff --git a/build-common.yml b/build-common.yml
index 628bc034896a4b4cb8afb5af748e7c2c1625f398..a230816e8469742689d829acd45afcd95170a28a 100644
--- a/build-common.yml
+++ b/build-common.yml
@@ -94,6 +94,13 @@ workflow:
       - "--"
       - "/usr/bin/poky-entry.py"
       - "--id=118:998"
+  variables:
+    MANUAL_BUILD: "false"
+  rules:
+    - if: $MANUAL_BUILD == "true"
+      when: manual
+      allow_failure: true
+    - when: always
   artifacts:
     expire_in: 1 week
     reports:
diff --git a/build-jobs-ci-test.yml.jinja2 b/build-jobs-ci-test.yml.jinja2
index f5a5ce5a5e545cd47bfba82fa7a76c8842339f12..955eecd46278d7c5b58c91db35855b738395b440 100644
--- a/build-jobs-ci-test.yml.jinja2
+++ b/build-jobs-ci-test.yml.jinja2
@@ -133,12 +133,10 @@ simulate-buildsdk-seco-mx6:
   extends:
     - .simulate_build
     - .buildbase
-  rules:
-    - when: manual
-      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/*
+    MANUAL_BUILD: "true"
   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 df8a02c322d59f7546680d6b64cd03366438dc1b..f9946ddc7031b47db4c36e045aae8a4320ca69e6 100644
--- a/build-jobs-yocto.yml.jinja2
+++ b/build-jobs-yocto.yml.jinja2
@@ -63,15 +63,13 @@ build-{{ machine }}:
 # Build jobs for the sdk
 buildsdk-{{ machine }}:
   extends: .build_yocto
-  rules:
-    - when: manual
-      allow_failure: true
   variables:
     BITBAKE_TASK: populate_sdk
     CI_PARAM_MACHINE: {{ machine }}
     CI_PARAM_DISTRO: {{ CI_PARAM_DISTRO }}
     CI_PARAM_IMAGE: {{ CI_PARAM_IMAGE }}
     ARTIFACTS_PATH: build-*/tmp/deploy/sdk/*
+    MANUAL_BUILD: "true"
 {% endif %}
 
 {% if CI_PARAM_IMAGE_FNG %}