diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1705dda1cf21c68e213e846782c10b24aa964b0d..1a8145bca43c67808cba55281be6ab927b462fd8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -325,6 +325,13 @@ build_ch:
 
 # URL and filename for tarball containing entire OpenHarmony OS codebase
 .openharmony_tarball:
+  rules:
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+    - if: $CI_COMMIT_BRANCH
+      when: manual
+      # We don't really want these jobs to fail, but we don't want to block
+      # pipeline and dependent jobs either
+      allow_failure: true
   before_script:
     - if [ "${OPENHARMONY_VERSION}" = "3.0" ]; then
         TARBALL_URL="https://repo.huaweicloud.com/harmonyos/os/3.0/code-v3.0-LTS.tar.gz";