diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2843e1483c329663d6af689cd0e0b116e9d5ca2b..72dcf886bc9d2e244f835c4249ae1c51bcd8ffd2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -26,17 +26,6 @@ image: python:3.9
 # Password: $MYSQL_PASSWORD
 # Database: $MYSQL_DATABASE
 
-# cache:
-#   paths:
-#     - .cache/pip
-#     - venv/
-    # - env/
-
-# before_script:
-  # - python --version  # For debugging
-  # - pip install venv
-  # - python3 -m venv /venv
-  # - source /venv/bin/activate
 
 stages:
   - build
@@ -48,6 +37,11 @@ workflow:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
     - if: $CI_COMMIT_BRANCH
 
+cache:
+  paths:
+    - venv/
+    - frontend/node_modules/
+
 # include:
 #   - template: 'Code-Quality.gitlab-ci.yml'
 
@@ -57,17 +51,21 @@ workflow:
 ####                                                                                                                               ####
 #######################################################################################################################################
 
-install:
+install-virtualenv:
   stage: build
   script:
-    - python3 -m venv ./venv
-    - source ./venv/bin/activate
+    - python3 -m venv venv/
+    - source venv/bin/activate
     - pip install --upgrade pip && pip install pip-tools
     - pip install -r ./backend/requirements.txt
-  artifacts:
-    paths:
-      - ./venv/
-    expire_in: 30 mins
+
+
+install-npm-packages:
+  image: node:14.6.0
+  stage: build
+  script:
+    - cd ./frontend
+    - npm ci
 
 #######################################################################################################################################
 ####                                                                                                                               ####
@@ -78,20 +76,22 @@ install:
 lint-back:
   stage: test
   before_script:
-    - source ./venv/bin/activate
+    - source venv/bin/activate
     - pip install pycodestyle
   script:
     - pycodestyle --config=./backend/setup.cnf ./backend
+  dependencies:
+    - install-virtualenv
 
 
 lint-front:
   image: node:14.6.0
   stage: test
-  before_script:
-    - cd frontend/
-    - npm install
   script:
+    - cd frontend/
     - npm run lint
+  dependencies:
+    - install-npm-packages
 
 
 # test:
@@ -161,7 +161,7 @@ lint-front:
     - cd ./frontend
     - echo 'REACT_APP_BASE_URL_BACK="http://eatfast.cs-campus.fr/api"' > .env;
     - echo 'REACT_APP_BASE_URL_FRONT="http://eatfast.cs-campus.fr"' >> .env;
-    - npm install && npm run build
+    - npm run build;
     - scp -r build/ eatfast@"$DOMAIN":/var/www/eatfast-website/frontend ; fi
 
 
@@ -184,6 +184,7 @@ deploy-back-prod:
     DOMAIN: eatfast.cs-campus.fr
     PRIVATE_KEY: "$SSH_PRIVATE_KEY"
     IMAGE: "back"
+  dependencies: []
 
 
 deploy-front-prod:
@@ -195,3 +196,5 @@ deploy-front-prod:
     DOMAIN: eatfast.cs-campus.fr
     PRIVATE_KEY: "$SSH_PRIVATE_KEY"
     IMAGE: "front"
+  dependencies:
+    - install-npm-packages