diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b6d4a1185b051714321d7ea2aefd4f164c92ec09..2cd60ebc45539085ec21cbf24aefd56f686dac1d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -88,8 +88,7 @@ full-deploy-testing:
 light-deploy-testing:
   stage: deploy
   rules:
-    - if: $MANUAL_FULL_DEPLOY_TESTING == "" || $MANUAL_FULL_DEPLOY_TESTING == "false"
-      when: tags
+    - if: ($CI_COMMIT_BRANCH == "master" && ($MANUAL_FULL_DEPLOY_TESTING == "" || $MANUAL_FULL_DEPLOY_TESTING == "false))"
   <<: *ssh_setup
   environment: Testing
   script:
@@ -102,8 +101,7 @@ full-deploy-production:
   stage: deploy
   environment: Production
   rules:
-     - if: $MANUAL_FULL_DEPLOY_PRODUCTION == "true"
-       when: tags
+     - if: ($CI_COMMIT_TAG =~ /stable/ && $MANUAL_FULL_DEPLOY_PRODUCTION == "true")
   <<: *ssh_setup
   script:
     - echo "Starting the full production deployment of airflows."
@@ -133,7 +131,7 @@ full-deploy-production:
 light-deploy-production:
   stage: deploy
   rules:
-    - if: $MANUAL_FULL_DEPLOY_PRODUCTION == "" || $MANUAL_FULL_DEPLOY_PRODUCTION == "false"
+    - if: ($CI_COMMIT_TAG =~ /stable/ && ($MANUAL_FULL_DEPLOY_PRODUCTION == "" || $MANUAL_FULL_DEPLOY_PRODUCTION == "false"))
       when: tags
   <<: *ssh_setup
   environment: Production