diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 73b0cf358dfa0f478b1b30aa23305c50b83badde..68a580923bd93c8c64b577a087b15b888d9dfd12 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,14 +8,20 @@ include:
       - '.ci_templates/.install_core.yml'
       - '.ci_templates/.preliminaries.yml'
 
+# RUN the pipeline if it is triggered:
+# - manually from web
+# - scheduled 
+# - by a merge_request event
+# - by a commit (push)
+# DO NOT RUN the pipeline after a commit in a MR (avoid duplicated pipelines)
 workflow:
-  rules:
+  rules: 
     - if: '$CI_PIPELINE_SOURCE == "web"'
-      when: always
+    - if: '$CI_PIPELINE_SOURCE == "schedule"'
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+    - if: '$CI_COMMIT_BRANCH'
     - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
       when: never
-    - if: '$CI_COMMIT_BRANCH'
     
 stages:
   - license