diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 949e22bec400bd93fe46833dd645391f8ef66f7a..8071e429f08b71db5a916d902a1e6601d190e886 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,5 @@
 stages:
+    - checkmerge
     - codestyle
     - test
     - publish
@@ -14,7 +15,24 @@ stages:
           when: always
         # - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != "develop"'
         #   when: always
-        
+
+
+check-environment-merges:
+    stage: checkmerge
+    rules:
+        - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /\w*-environment$/'
+          when: always
+    script: 
+        - if [[ $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ ^v[0-9]*.* ]]; then exit 0; else exit 1; fi
+
+check-release-merges:
+    stage: checkmerge
+    rules:
+        - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^v\d.*/'
+          when: always
+    script: 
+        - if [[ $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == main ]]; then exit 0; else exit 1; fi
+
 
 flake8-job:
     stage: codestyle
@@ -81,7 +99,7 @@ deploy:
         - /\w*-environment$/
     needs: ["publish"]
     environment:
-        name: $CI_COMMIT_BRANCH
+        name: ${CI_COMMIT_BRANCH}
     image: alpine:latest
     stage: deploy
     tags: