diff --git a/.oniro-ci/build-generic.yaml b/.oniro-ci/build-generic.yaml
index e526521d0b3dd42f7f78f82a13a760c0dc1875ae..61cdd5add192f19502cc0dd11cdafdfc00c454d2 100644
--- a/.oniro-ci/build-generic.yaml
+++ b/.oniro-ci/build-generic.yaml
@@ -131,9 +131,11 @@
     - test -n "$CI_ONIRO_RUNNER_PERSISTENT_STORAGE" || (
         echo "precondition failed - CI_ONIRO_RUNNER_PERSISTENT_STORAGE is not set"
         && exit 1 )
-    - test -w "$CI_ONIRO_RUNNER_PERSISTENT_STORAGE/$CI_ONIRO_BUILD_CACHE/bitbake" || (
-        echo "precondition failed - expected $CI_ONIRO_RUNNER_PERSISTENT_STORAGE/$CI_ONIRO_BUILD_CACHE/bitbake to be writable"
-        && exit 1 )
+    - |
+      mkdir -p $CI_ONIRO_RUNNER_PERSISTENT_STORAGE/pub/bitbake
+      mkdir -p $CI_ONIRO_RUNNER_PERSISTENT_STORAGE/private/bitbake
+      chmod 775 $CI_ONIRO_RUNNER_PERSISTENT_STORAGE/{private,pub}
+      chmod 775 $CI_ONIRO_RUNNER_PERSISTENT_STORAGE/{private,pub}/bitbake
     # Log available disk space on the persistent shared disk.
     - df -h "$CI_ONIRO_RUNNER_PERSISTENT_STORAGE/$CI_ONIRO_BUILD_CACHE/bitbake"
     - !reference [.workspace, before_script]