diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ee55d791827bc106624fb2c010b1264dbe6dcf20..c8066920aadbf23911fb0c4d7e2a2d58503f18c4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,9 +1,33 @@
 stages:
+  - lint
   - test
 cache:
   paths:
     - ~/.cache
 
+lint:commit:
+  image: node:16.16.0-alpine
+  stage: lint
+  allow_failure: true
+  before_script:
+    - apk add --no-cache npm
+    - npm ci
+  script:
+    - echo "${CI_COMMIT_MESSAGE}" | npx commitlint
+
+linter:
+  image: node:16.16.0-alpine
+  stage: lint
+  before_script:
+    - apk add --no-cache npm
+    - npm ci
+  script:
+    - npm run lint:ts
+  only:
+    - development
+    - merge_requests
+    - tags
+
 jest:
   image: node:16.16.0-alpine
   stage: test
@@ -26,15 +50,4 @@ jest:
         coverage_format: cobertura
         path: coverage/cobertura-coverage.xml
 
-linter:
-  image: node:16.16.0-alpine
-  stage: test
-  before_script:
-    - apk add --no-cache npm
-    - npm ci
-  script:
-    - npm run lint:ts
-  only:
-    - development
-    - merge_requests
-    - tags
+