diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0765485415f8e2f0c2fd081aedba78478adec8bd..e504560c1f8eb4404e7fb74f1c766866d854974e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,9 +1,17 @@
+variables:
+  NAMESPACE_DEV: test-notifications-service
+  OPENSHIFT_SERVER_DEV: https://openshift-dev.cern.ch
+  BUILD_ENV_DEV: dev
+  DEV_TAG: dev
+  RESOURCE: notifications-consumer-image-stream
+
 stages:
   - Build_base
   - Check_base
   - Test
   - Build
-
+  - Tag_Image
+  - Import_Image
 
 .build:
   stage: Build
@@ -12,6 +20,20 @@ stages:
   script:
     - "echo 'Building docker image'"
 
+# If a new tag is pushed it needs to be referenced into the ImageStream
+.tag_image:
+  stage: Tag_Image
+  image: gitlab-registry.cern.ch/paas-tools/openshift-client:latest
+  script:
+   - oc tag --source=docker ${CI_REGISTRY_IMAGE}:${CI_REGISTRY_TAG} ${RESOURCE}:${TAG} --token=${TOKEN} --server=${OPENSHIFT_SERVER} -n ${NAMESPACE}
+
+# Import image to OpenShift.
+.import_image:
+  stage: Import_Image
+  image: gitlab-registry.cern.ch/paas-tools/openshift-client:latest
+  script:
+    - oc import-image ${RESOURCE}:${TAG} --token=${TOKEN} --server=${OPENSHIFT_SERVER} -n ${NAMESPACE}
+
 # Lint
 lint:
   image: docker:19.03.12
@@ -68,11 +90,20 @@ build:
   extends: .build
   variables:
     TO: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}
+  rules:
+    - if: $CI_COMMIT_BRANCH == 'master'
+    - when: never
+
+# Build MR image and store it in the registry.
+build_test_image:
+  extends: .build
+  variables:
+    TO: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}
   rules:
     - if:  $CI_MERGE_REQUEST_ID
       when: manual
       allow_failure: true
-    - if: $CI_COMMIT_BRANCH == 'master'
+    - when: never
 
 # Build dev image and store it in the registry.
 build_dev_image:
@@ -81,6 +112,7 @@ build_dev_image:
     TO: ${CI_REGISTRY_IMAGE}:dev
   rules:
     - if: $CI_COMMIT_BRANCH == 'master'
+    - when: never
 
 # Build tagged image and store it in the registry.
 build_tagged_image:
@@ -89,3 +121,95 @@ build_tagged_image:
     TO: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}
   rules:
     - if: $CI_COMMIT_TAG
+    - when: never
+
+# Create tag for MR image in OpenShift DEV.
+tag_test_image_dev:
+  extends: .tag_image
+  environment:
+    name: branch/$CI_COMMIT_REF_SLUG
+  variables:
+    CI_REGISTRY_TAG: $CI_COMMIT_REF_SLUG
+    TAG: $CI_COMMIT_REF_SLUG
+    TOKEN: ${OPENSHIFT_DEV_TOKEN}
+    NAMESPACE: ${NAMESPACE_DEV}
+    OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+  rules:
+    - if:  $CI_MERGE_REQUEST_ID
+      when: manual
+      allow_failure: true
+    - when: never
+
+# Create tag for dev image in OpenShift DEV.
+tag_dev_image_dev:
+  extends: .tag_image
+  environment:
+    name: dev
+  variables:
+    CI_REGISTRY_TAG: ${DEV_TAG}
+    TAG: ${DEV_TAG}
+    TOKEN: ${OPENSHIFT_DEV_TOKEN}
+    NAMESPACE: ${NAMESPACE_DEV}
+    OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+  rules:
+    - if: $CI_COMMIT_BRANCH == 'master'
+    - when: never
+
+# Create tag for tagged image in OpenShift DEV.
+tag_tagged_image_dev:
+  extends: .tag_image
+  environment:
+    name: dev
+  variables:
+    CI_REGISTRY_TAG: $CI_COMMIT_TAG
+    TAG: $CI_COMMIT_TAG
+    TOKEN: ${OPENSHIFT_DEV_TOKEN}
+    NAMESPACE: ${NAMESPACE_DEV}
+    OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+  rules:
+    - if: $CI_COMMIT_TAG
+    - when: never
+
+# Import MR image into OpenShift DEV.
+import_test_image_dev:
+  extends: .import_image
+  environment:
+    name: branch/$CI_COMMIT_REF_SLUG
+  variables:
+    TAG: $CI_COMMIT_REF_SLUG
+    TOKEN: ${OPENSHIFT_DEV_TOKEN}
+    NAMESPACE: ${NAMESPACE_DEV}
+    OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+  rules:
+    - if:  $CI_MERGE_REQUEST_ID
+      when: manual
+      allow_failure: true
+    - when: never
+
+# Import dev image into OpenShift DEV.
+import_dev_image_dev:
+  extends: .import_image
+  environment:
+    name: dev
+  variables:
+    TAG: ${DEV_TAG}
+    TOKEN: ${OPENSHIFT_DEV_TOKEN}
+    NAMESPACE: ${NAMESPACE_DEV}
+    OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+  rules:
+    - if: $CI_COMMIT_BRANCH == 'master'
+    - when: never
+
+# Import tagged image into OpenShift DEV.
+import_tagged_image_dev:
+  extends: .import_image
+  environment:
+    name: dev
+  variables:
+    TAG: $CI_COMMIT_TAG
+    TOKEN: ${OPENSHIFT_DEV_TOKEN}
+    NAMESPACE: ${NAMESPACE_DEV}
+    OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+  rules:
+    - if: $CI_COMMIT_TAG
+    - when: never