diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a2de4d53490d9ae9e29647827910ea4da7375c07..62f3813d31343aefd8be9b2c162e5cb7e200eee3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,6 +4,7 @@ variables:
 
 stages:
   - setup
+  - check
   - build
   - deploy
 
@@ -27,6 +28,29 @@ fe-cache-node-job:
     - tags
     - development
 
+#==[ Frontend checks ]==========================================================
+
+fe-check-node-job:
+  needs:
+    - fe-cache-node-job
+  image: node:16-alpine
+  stage: check
+  tags:
+    - commul
+  cache:
+    key:
+      files:
+        - frontend/package-lock.json
+    paths:
+      - frontend/.npm/
+  script:
+    - cd frontend
+    - npm ci --cache .npm --prefer-offline
+    - npm run test
+  only:
+    - tags
+    - development
+
 #==[ Backend build ]============================================================
 
 # TODO: cache docker layers