diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c2bec99021307ce580cd7333ab4c9c197739049b..0cede9c9bad3f2851f2d5217bec48293ec45223b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,6 +14,7 @@ stages:
   - analyze
   - release
   - deploy
+  - e2e
 
 before_script:
   - export NG_CLI_ANALYTICS="false"
@@ -62,6 +63,7 @@ maven-compile:
       - target/generated-sources/
     expire_in: 15 days
   needs: []
+  cache: []
 
 maven-test:
   # DinD service is required for Testcontainers
@@ -112,28 +114,6 @@ frontend-test:
     expire_in: 15 days
   needs: []
 
-e2e-test:
-  stage: test
-  cache:
-    # inherit all global cache settings
-    <<: *global_cache
-    # override the policy
-    policy: pull
-  only:
-    refs:
-      - development
-  services:
-    - selenium/standalone-chrome
-  dependencies:
-    - frontend-test
-  script:
-    - npm install
-    - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
-    - dpkg -i google-chrome*.deb
-    - export JHI_E2E_HEADLESS=true
-    - export E2E_PASSWORD=$E2E_PASSWORD
-    - npm run e2e --host=selenium__standalone-chrome
-
 sonar-analyze:
   stage: analyze
   cache:
@@ -152,9 +132,9 @@ sonar-analyze:
 # Uncomment the following line to use gitlabs container registry. You need to adapt the REGISTRY_URL in case you are not using gitlab.com
 docker-push:
   stage: release
-  only:
-    refs:
-      - development
+  # only:
+  #   refs:
+  #     - development
   dependencies:
     - maven-test
     - frontend-test
@@ -163,13 +143,15 @@ docker-push:
     IMAGE_TAG: sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform
   script:
     - ./mvnw package -Pprod verify -DskipTests jib:build -Djib.to.image=$IMAGE_TAG -Djib.to.auth.username=gitlab-ci-token  -Djib.to.auth.password=$CI_BUILD_TOKEN -Dmaven.repo.local=$MAVEN_USER_HOME
-  when: always
+  when: on_success
+  cache: []
 
 deploy:
   stage: deploy
-  only:
-    refs:
-      - development
+  cache: []
+  # only:
+  #   refs:
+  #     - development
   dependencies:
     - docker-push
     - maven-test
@@ -185,5 +167,29 @@ deploy:
     - ssh-add ~/.ssh/id_rsa
     - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
   script:
+    - npm cache verify
     - ssh contDeploy@codeability-austria -p 1022 "cd /home/michael/gitsearch && git pull && cd src/main/docker/ && docker pull sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform && GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` COMMIT_ID=`git rev-parse HEAD` SPRING_PROFILES_ACTIVE=staging,swagger docker-compose -f gitsearch.yml up  -d --no-deps --build --force-recreate gitsearch-app && exit"
-  when: always
+  when: on_success
+
+e2e-test:
+  stage: e2e
+  cache:
+    # inherit all global cache settings
+    <<: *global_cache
+    # override the policy
+    policy: pull
+  only:
+    refs:
+      - development
+  services:
+    - selenium/standalone-chrome
+  dependencies:
+    - deploy
+  script:
+    - npm install
+    - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
+    - dpkg -i google-chrome*.deb
+    - export JHI_E2E_HEADLESS=true
+    - export E2E_PASSWORD=$E2E_PASSWORD
+    - npm run e2e --host=selenium__standalone-chrome
+  when: on_success