diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7fa4eef40b191770c0b5356ba292d3d980f70039..3ea37cd7f0439b9369fafb7cb392910f085d0a2f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,26 +2,8 @@ stages:
   - pre-release
   - release
 
-# Инициация процесса релиза. Запускается вручную или из восходящего конвейера
-get_current_version:
-  image: bitnami/git:latest
-  stage: pre-release
-  rules:
-    - if: '$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE == "true"'
-    - if: $CI_PIPELINE_SOURCE == "web"
-      when: manual
-  variables:
-    GIT_STRATEGY: clone
-    GIT_DEPTH: 0
-  script:
-    - echo "Start release for perxis-proto"
-    - echo CURRENT_VERSION=$(git describe --tags --abbrev=0) >> vars.env
-  artifacts:
-    reports:
-      dotenv: vars.env
-
 # Расчет новой версии и формирование Changelog
-get_release_info:
+get_changelog:
   stage: pre-release
   image:
     name: orhunp/git-cliff:latest
@@ -29,13 +11,10 @@ get_release_info:
   rules:
     - if: '$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE == "true"'
     - if: $CI_PIPELINE_SOURCE == "web"
-  needs:
-    - job: get_current_version
   variables:
     GIT_STRATEGY: clone
     GIT_DEPTH: 0
   script:
-    - echo "RELEASE_VERSION=$(git-cliff --bumped-version)" >> vars.env
     - echo "$(git-cliff --unreleased | sed '1,6d' | sed '$d')" > current_changelog.md
   artifacts:
     reports:
@@ -46,25 +25,42 @@ get_release_info:
 # Выпуск релиза и публикация артефактов с новой версией и списком изменений
 prepare_release:
   stage: pre-release
-  image: registry.gitlab.com/gitlab-org/release-cli:latest
+  image: bitnami/git:latest
+  variables:
+    GIT_STRATEGY: clone
+    GIT_DEPTH: 0
   rules:
     - if: '$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE == "true"'
     - if: $CI_PIPELINE_SOURCE == "web"
   needs:
-    - job: get_current_version
-      artifacts: true
-    - job: get_release_info
+    - job: get_changelog
       artifacts: true
   script:
-    - echo "PERXIS_PROTO_CURRENT_VERSION=$CURRENT_VERSION" >> vars.env
-    - echo "PERXIS_PROTO_RELEASE_VERSION=$RELEASE_VERSION" >> vars.env
     - |
+      CURRENT_VERSION=$(git describe --tags --abbrev=0)
+      RELEASE_VERSION=$CURRENT_VERSION
+      
+      # Релиз perxis-proto - это всегда изменения апи и хотфиксом быть не может. Выполняется только при наличии изменений
+      if [ $HOTFIX_RELEASE != "true" ] && [ $(git rev-list $CURRENT_VERSION..HEAD --count) -gt 0 ]; then
+        RELEASE_VERSION=$PERXIS_RELEASE_VERSION
+      fi
+
       # Если новая версия совпадает со старой, значит изменений не было, и выпускать новый релиз не нужно
       NEEDS_RELEASE=false
       if [ "$RELEASE_VERSION" != "$CURRENT_VERSION" ]; then
         NEEDS_RELEASE=true
       fi
-    - echo "PERXIS_PROTO_NEEDS_RELEASE=$NEEDS_RELEASE" >> vars.env
+
+      echo "PERXIS_PROTO_CURRENT_VERSION=$CURRENT_VERSION" >> vars.env
+      echo "PERXIS_PROTO_RELEASE_VERSION=$RELEASE_VERSION" >> vars.env
+      echo "PERXIS_PROTO_NEEDS_RELEASE=$NEEDS_RELEASE" >> vars.env
+
+      printf '### Release perxis-proto
+      PERXIS_RELEASE_VERSION: %s
+      HOTFIX_RELEASE: %s
+      CURRENT_VERSION: %s
+      RELEASE_VERSION: %s
+      NEEDS_RELEASE: %s' $PERXIS_RELEASE_VERSION $HOTFIX_RELEASE $CURRENT_VERSION $RELEASE_VERSION $NEEDS_RELEASE
   artifacts:
     when: always
     paths:
@@ -84,7 +80,7 @@ release:
   script:
     - echo "Start release $VERSION"
     - |
-      if  [ $NEEDS_RELEASE != "true" ]; then
+      if [ $NEEDS_RELEASE != "true" ]; then
         exit 203
       fi
   allow_failure: