diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 06640ee82bbbcde99fe263933bcc164046a22612..5ae1632edb50fc5ad99fd173d40a1a88523830f5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -427,7 +427,9 @@ ohos:
     - cd $(basename $TARBALL_FILE .tar.gz)/OpenHarmony
     - ../../build/tmp-*/deploy/sdk/${PREBUILT_IMAGE}-${OPENHARMONY_VERSION}-*.sh -y -d oniro
     - ./oniro/setup.sh
-    - ./build.sh --product-name Hi3516DV300
+    - NUM_CPUS="${CI_ONIRO_NUM_CPUS:-$(nproc)}"
+    - NINJA_ARGS="--ninja-args -j$NUM_CPUS --ninja-args -l$NUM_CPUS"
+    - ./build.sh --product-name Hi3516DV300 $NINJA_ARGS
 
 # Job for triggering a prune of the sstate-cache mirror in runner persistent
 # storage.  This should be done periodically, but as I believe it removes a