diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 249b84e5c1902743a60b5ad0665318b4b622bc1a..87c9d9c3837b9a5c28c366e9bb84b9d358180687 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -98,9 +98,11 @@ build_and_test:focal:
   script:
     - *build_and_test_definition
 
-############ DEPLOY PLUGINS ############
+############ DEPLOY PLUGINS ANY BRANCY EXCEPT FOR main ############
 deploy_imu:
   stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH != "main"
   variables:
     WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
     DEPLOY_CI_ROS: "false"
@@ -111,6 +113,8 @@ deploy_imu:
 
 deploy_gnss:
   stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH != "main"
   variables:
     WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
     DEPLOY_CI_ROS: "false"
@@ -121,6 +125,8 @@ deploy_gnss:
 
 deploy_vision:
   stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH != "main"
   variables:
     WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
     DEPLOY_CI_ROS: "false"
@@ -131,6 +137,8 @@ deploy_vision:
 
 deploy_laser:
   stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH != "main"
   variables:
     WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
     DEPLOY_CI_ROS: "false"
@@ -141,6 +149,8 @@ deploy_laser:
 
 deploy_apriltag:
   stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH != "main"
   variables:
     WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
     DEPLOY_CI_ROS: "false"
@@ -151,6 +161,8 @@ deploy_apriltag:
 
 deploy_bodydynamics:
   stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH != "main"
   variables:
     WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
     DEPLOY_CI_ROS: "false"
@@ -159,18 +171,90 @@ deploy_bodydynamics:
     branch: $WOLF_BODYDYNAMICS_BRANCH
     strategy: depend
 
+############ DEPLOY PLUGINS FOR main ############
+deploy_imu_main:
+  stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH == "main"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
+    DEPLOY_CI_ROS: "false"
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_lib/plugins/imu
+    branch: main
+    strategy: depend
+
+deploy_gnss_main:
+  stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH == "main"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
+    DEPLOY_CI_ROS: "false"
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_lib/plugins/gnss
+    branch: main
+    strategy: depend
+
+deploy_vision_main:
+  stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH == "main"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
+    DEPLOY_CI_ROS: "false"
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_lib/plugins/vision
+    branch: main
+    strategy: depend
+
+deploy_laser_main:
+  stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH == "main"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
+    DEPLOY_CI_ROS: "false"
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_lib/plugins/laser
+    branch: main
+    strategy: depend
+
+deploy_apriltag_main:
+  stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH == "main"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
+    DEPLOY_CI_ROS: "false"
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_lib/plugins/apriltag
+    branch: main
+    strategy: depend
+
+deploy_bodydynamics_main:
+  stage: deploy_plugins
+  rules: 
+    - if: $CI_COMMIT_BRANCH == "main"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
+    DEPLOY_CI_ROS: "false"
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_lib/plugins/bodydynamics
+    branch: main
+    strategy: depend
+
 ############ WAIT FOR PLUGINS ############
 final_all_plugins:
   stage: final_plugins
   script:
     - echo "ALL PLUGINS PIPELINES SUCCEED!!!"
 
-############ DEPLOY WOLF_ROS_NODE ############
+############ DEPLOY WOLF_ROS_NODE EXCEPT FOR main ############
 deploy_wolf_ros_node:
   stage: deploy_ros
-  only:
-    variables:
-      - $DEPLOY_CI_ROS == "true"
+  rules: 
+    - if: $CI_COMMIT_BRANCH != "main" && $DEPLOY_CI_ROS == "true"
   variables:
     WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
     WOLF_IMU_BRANCH: $WOLF_IMU_BRANCH
@@ -189,10 +273,32 @@ deploy_wolf_ros_node:
     project: mobile_robotics/wolf_projects/wolf_ros/wolf_ros_node
     branch: $WOLF_ROS_CORE_BRANCH
 
+############ DEPLOY WOLF_ROS_NODE FOR main ############
+deploy_wolf_ros_node_main:
+  stage: deploy_ros
+  rules: 
+    - if: $CI_COMMIT_BRANCH == "main" && $DEPLOY_CI_ROS == "true"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_BRANCH
+    WOLF_IMU_BRANCH: main
+    WOLF_GNSS_BRANCH: main
+    WOLF_LASER_BRANCH: main
+    WOLF_VISION_BRANCH: main
+    WOLF_APRILTAG_BRANCH: main
+    WOLF_BODYDYNAMICS_BRANCH: main
+    WOLF_ROS_IMU_BRANCH: main
+    WOLF_ROS_GNSS_BRANCH: main
+    WOLF_ROS_LASER_BRANCH: main
+    WOLF_ROS_VISION_BRANCH: main
+    WOLF_ROS_APRILTAG_BRANCH: main
+    WOLF_ROS_BODYDYNAMICS_BRANCH: main
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_ros/wolf_ros_node
+    branch: main
+
 no_deploy_wolf_ros_node:
   stage: deploy_ros
   script: 
-    - echo "NOT deploying CI for wolf_ros_node, since DEPLOY_CI_ROS is $DEPLOY_CI_ROS"
-  except:
-    variables:
-      - $DEPLOY_CI_ROS == "true"
+    - echo "NOT deploying CI for wolf_ros_node, since DEPLOY_CI_ROS is $DEPLOY_CI_ROS (not true)"
+  rules: 
+    - if: $DEPLOY_CI_ROS != "true"