diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 002966f00fd8a72b62d8b7a18c856b586ec8e3ec..64ee4a176073d869a6950b5fe45354f735618508 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,13 @@
+workflow:
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "web"'
+    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
+      when: never
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
+      when: never
+    - if: '$CI_COMMIT_BRANCH'
+
 stages:
   - license
   - build_and_test
@@ -10,7 +20,6 @@ stages:
   - echo $WOLF_IMU_BRANCH
   - echo $WOLF_ROS_NODE_BRANCH
   - echo $CI_COMMIT_BRANCH
-  - echo $WOLF_ROS_IMU_BRANCH
 
 .preliminaries_template: &preliminaries_definition
   ## Install ssh-agent if not already installed, it is required by Docker.