diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8f553584760a1a2eb97894a2eaab4187b89d2cca..4d2ace21aaa8dd0df02e2e94a918523f53bd5b7a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,19 +4,44 @@ variables:
 
 stages:
   - lint
+  - analyze
 
 lint:
   stage: lint
   image: $DOCKER_IMAGE
   script:
-  - pip3 install virtualenv
-  - virtualenv .
-  - source bin/activate
-  - pip3 install -r requirements.txt
-  - bin/pycodestyle --first --show-source --ignore=E501 *.py
+    - pip3 install virtualenv
+    - virtualenv .
+    - source bin/activate
+    - pip3 install -r requirements.txt
+    - bin/pycodestyle --first --show-source --ignore=E501 *.py
   cache:
     key: $CI_COMMIT_REF_SLUG
     paths:
-    - bin/
-    - lib/
-    - ./*.latest.txt
+      - bin/
+      - lib/
+  allow_failure: true
+  artifacts:
+    paths:
+      - ./*.latest.txt
+  rules:
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_PIPELINE_SOURCE == "push"
+
+analyze:
+  stage: analyze
+  image: $DOCKER_IMAGE
+  script:
+    - pip3 install virtualenv
+    - virtualenv .
+    - source bin/activate
+    - pip3 install -r requirements.txt
+    - source bin/activate
+    - ./cli.py -c /dev/null
+  cache:
+    key: $CI_COMMIT_REF_SLUG
+    paths:
+      - bin/
+      - lib/
+  artifacts:
+    paths:
+      - ./*.latest.txt