diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0815af2ecb9e82e91cc7151b31d303a5e58ccc76..879abd77adeeabcc786aba38a669a0411ea60d9b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -448,6 +448,10 @@ test-ui:
 release-images:
   stage: release
   image: docker:${DOCKER_VERSION}-dind
+  only:
+    refs:
+      - dev
+      - /^release-.*/
   dependencies:
     - test-analyse-service
     - test-auth-service-init
@@ -457,9 +461,6 @@ release-images:
     - test-search-service
     - test-search-service-init
     - test-ui
-  only:
-    - tags
-    - merge_requests
   before_script:
     - "docker logout ${CI_REGISTRY_URL}"
     - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}"
@@ -474,8 +475,8 @@ release-helm:
   stage: release
   image: docker:${DOCKER_VERSION}-dind
   only:
-    - tags
-    - merge_requests
+    refs:
+      - /^release-.*/
   when: manual
   needs:
     - build-helm
@@ -503,8 +504,8 @@ release-docs:
   stage: release
   image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
   only:
-    - tags
-    - merge_requests
+    refs:
+      - /^release-.*/
   before_script:
     - "apk add --no-cache alpine-sdk bash sed wget openssh jq curl"
     - "pip install pipenv"
@@ -538,7 +539,8 @@ release-libs:
   image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
   when: manual
   only:
-    - tags
+    refs:
+      - /^release-.*/
   variables:
     PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
   before_script:
@@ -566,7 +568,8 @@ verify-dist:
   image: docker.io/alpine:${ALPINE_VERSION}
   stage: verify
   only:
-    - tags
+    refs:
+      - /^release-.*/
   before_script:
     - "apk add curl"
   script: