diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b7e86ec5fafc0919e064d12441e89202e2662116..df3a133a785ef775a61d262d8e0c4056f3a9a594 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,6 @@
 image: node:latest
 
-stages:          # List of stages for jobs, and their order of execution
-  - npm
+stages:
   - build
   - test
 
@@ -16,11 +15,6 @@ cache:
 before_script:
   - npm ci --cache .npm --prefer-offline
 
-npm:
-  stage: npm
-  script:
-    - npm ci
-
 build-job:       # This job runs in the build stage, which runs first.
   stage: build
   script:
@@ -29,11 +23,18 @@ build-job:       # This job runs in the build stage, which runs first.
 unit-test-job:   # This job runs in the test stage.
   stage: test    # It only starts when the job in the build stage completes successfully.
   script:
-    - npm i
     - npm run test:unit
 
-e2e-test-job:    # This job runs in the test stage.
+e2e-test-ff-job:    # This job runs in the test stage.
+  image: cypress/browsers:latest
+  stage: test    # It only starts when the job in the build stage completes successfully.
+  script:
+    - npm run dev &
+    - npx cypress run --browser firefox
+
+e2e-test-chrome-job:    # This job runs in the test stage.
+  image: cypress/browsers:latest
   stage: test    # It only starts when the job in the build stage completes successfully.
   script:
-    - npm i
-    - npm run test:e2e
+    - npm run dev &
+    - npx cypress run --browser chrome