diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6a9bd7f32fd3a46c509a18beb57de1f9ba7aa87b..b43efb32fe1b369a8712a5289114dbc8ea541944 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,8 @@
 stages:
   - build:srpm
   - build:rpm
+  - analysis:check
+  - analysis:report
   - build:dockerimage
   - test
   - regressions
@@ -348,3 +350,27 @@ trigger_doc_update:
     project: CTA/eoscta-docs
     strategy: depend
 
+cppcheck:
+  stage: analysis:check
+  image:
+    name: neszt/cppcheck-docker
+    entrypoint: ["/usr/bin/env"]
+  script:
+    - cppcheck --xml --enable=warning,performance . 2> cppcheck_out.xml
+  artifacts:
+    expire_in: 2 days
+    paths:
+    - cppcheck_out.xml
+
+
+# based on https://gitlab.com/ahogen/cppcheck-codequality
+cppcheck_report:
+  stage: analysis:report
+  image: centos:7
+  script:
+    - yum -y install python3-pip
+    - python3 -m pip install -U cppcheck_codequality
+    - cppcheck-codequality --input-file=cppcheck_out.xml --output-file=cppcheck.json
+  artifacts:
+    reports:
+      codequality: cppcheck.json