diff --git a/docs/.gitlab-ci.yaml b/docs/.gitlab-ci.yaml
index de4a141f70e0949d5c4bd081e49dd6113ebde748..8ba8ca32b59608f5221ca2dee6e08481cbd50ea9 100644
--- a/docs/.gitlab-ci.yaml
+++ b/docs/.gitlab-ci.yaml
@@ -14,7 +14,12 @@ build-docs:
   script:
     - mdbook build docs -d public
   rules:
-    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
+    - if: '$FORCE_DOCS_BUILD == true'
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
+      changes:
+        paths:
+          - ./docs/**/*
+          - ./**/README.md
   artifacts:
     expire_in: 1 week
     paths:
@@ -35,6 +40,11 @@ upload-docs:
   script:
     - mc cp public gitops-docs
   rules:
-    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
+    - if: '$FORCE_DOCS_BUILD == true'
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
+      changes:
+        paths:
+          - ./docs/**/*
+          - ./**/README.md
   tags:
     - kubernetes
\ No newline at end of file