diff --git a/.oniro-ci/build-generic.yaml b/.oniro-ci/build-generic.yaml
index d9e09c23f9c0b1fe58ce0a31c3d3344b7c582c8a..072bcaa4ccdf4035590f8b8b33046f860a11a77c 100644
--- a/.oniro-ci/build-generic.yaml
+++ b/.oniro-ci/build-generic.yaml
@@ -258,7 +258,8 @@
 .build-image:
   extends: .build-recipe
   variables:
-    CI_ONIRO_JOB_ARTIFACTS: ""
+    CI_ONIRO_JOB_ARTIFACTS: "*.wic.* *.bmap ovmf.qcow2"
+    CI_ONIRO_STORE_IMAGE_ARTIFACT: 0
   script:
     - !reference [.build-recipe, script]
     # Move artifacts for recovery, which only considers $CI_PROJECT_DIR and
@@ -276,11 +277,12 @@
     # build and boot.
     - find "$BITBAKE_DEPLOY_DIR"/images/ -name *.wic -exec rm -rf {} \;
     - cp -a "$BITBAKE_DEPLOY_DIR"/licenses/ "$CI_PROJECT_DIR"/artifacts || true
-    # Only copy the files defined in the CI_ONIRO_JOB_ARTIFACTS variable. Most
+    # If CI_ONIRO_STORE_IMAGE_ARTIFACT is 1 copy the files defined in the CI_ONIRO_JOB_ARTIFACTS variable. Most
     # of the remaining files are redundant and quite large.
+    - if test "$CI_ONIRO_STORE_IMAGE_ARTIFACT" != "1"; then (echo "CI_ONIRO_STORE_IMAGE_ARTIFACT is not set, artifacts will not be saved!") fi
     - |
       set -x
-      if test -n "$CI_ONIRO_JOB_ARTIFACTS" && test -d "$BITBAKE_DEPLOY_DIR"; then
+      if test -n "$CI_ONIRO_JOB_ARTIFACTS" && test -d "$BITBAKE_DEPLOY_DIR" && test "$CI_ONIRO_STORE_IMAGE_ARTIFACT" = "1"; then
         (
           cd "$BITBAKE_DEPLOY_DIR"
           for artifact in $CI_ONIRO_JOB_ARTIFACTS; do
@@ -302,9 +304,27 @@
   variables:
     CI_ONIRO_BB_LOCAL_CONF_plus_equals_INHERIT: create-spdx
     CI_ONIRO_JOB_ARTIFACTS: "*.wic.* *.bmap"
+    CI_ONIRO_STORE_IMAGE_ARTIFACT: 1
   script:
     - !reference [.build-image, script]
 
+.build-linux-image:
+  extends: .build-image
+  variables:
+    CI_ONIRO_BUILD_FLAVOUR: linux
+    CI_ONIRO_BB_LOCAL_CONF_plus_equals_INHERIT: rm_work
+    CI_ONIRO_BB_LOCAL_CONF_plus_equals_INHERIT: create-spdx
+
+.build-linux-oniro-image-base:
+  extends: .build-linux-image
+  variables:
+    CI_ONIRO_RECIPE_NAME: oniro-image-base
+
+.build-linux-oniro-image-tests:
+  extends: .build-linux-image
+  variables:
+    CI_ONIRO_RECIPE_NAME: oniro-image-base-tests
+
 .build-rauc-bundle:
   extends: .build-image
   variables:
diff --git a/.oniro-ci/machines-and-flavours.yaml b/.oniro-ci/machines-and-flavours.yaml
index db1dcbf75bc9ca11c316167dd41ffd52edb1413e..2205a0f4d11393b5beaf72623d975254078e0820 100644
--- a/.oniro-ci/machines-and-flavours.yaml
+++ b/.oniro-ci/machines-and-flavours.yaml
@@ -32,23 +32,22 @@
       allow_failure: true
 
 .linux-qemu-x86:
-  extends: [.build-wic-image, .check-abi]
+  extends: [.build-linux-oniro-image-tests, .check-abi]
   variables:
     MACHINE: qemux86
-    CI_ONIRO_BUILD_FLAVOUR: linux
-    CI_ONIRO_RECIPE_NAME: oniro-image-base-tests
     # Set CI_ONIRO_BUILD_CACHE to "pub", overriding the value defined in the
     # .build job. This enables sharing of download and sstate-cache created
     # during this job.
     #
     # This is done assuming that there are no non-redistributable or otherwise
     # tainted build intermediate files, downloads or published artifacts.
-    CI_ONIRO_BB_LOCAL_CONF_BB_GENERATE_MIRROR_TARBALLS: 1
-    CI_ONIRO_JOB_ARTIFACTS: "*.wic.* *.bmap ovmf.qcow2"
+    CI_ONIRO_BUILD_CACHE: "pub"
 linux-qemu-x86-gcc:
- extends: [.linux-qemu-x86, .toolchain-gcc]
+  extends: [.linux-qemu-x86, .toolchain-gcc]
+  variables:
+    CI_ONIRO_STORE_IMAGE_ARTIFACT: 1 # artifacts used by lava-qemu-x86
 linux-qemu-x86-clang:
- extends: [.linux-qemu-x86, .toolchain-clang]
+  extends: [.linux-qemu-x86, .toolchain-clang]
 
 .linux-qemu-x86_64:
   extends: [.build-wic-image, .check-abi]