diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e88e0d23c0425f735a7dd0782f2e60ced6f37d18..133cafba6a1dd31c3133748034178824e248fc8c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,22 +10,27 @@ build:
   script:
     - mkdir build
     - cd build
-    - cmake ..
+    - cmake .. -DCOVERAGE=ON
     - cmake --build . -- -j 4 
     - ctest -j4 -V >& test.log
+    - ../Tools/coverage.sh
   after_script:
     - cd build
     - ls
     - gzip -v -9 -S .gz test.log
+    - tar cjf coverage-report.tar.bz2 coverage-report
     - pwd
   artifacts:
     expire_in: 1 week
     paths:
       - build/test.log.gz
     when: on_failure
-    reports:
-      junit:
-        - build/test_outputs/junit*.xml
+      reports:
+        junit:
+          - build/test_outputs/junit*.xml
+    when: on_success
+      paths:
+        - build/coverage-report.tar.bz2
 
 pages:
   stage: build
diff --git a/Tools/coverage.sh b/Tools/coverage.sh
index c698cf5f36ac0f5df6d65ab4ff0ea57f9c9902ad..19cbd47ca833b0ef1e34a84f19a1b5daa48816ac 100755
--- a/Tools/coverage.sh
+++ b/Tools/coverage.sh
@@ -22,11 +22,12 @@ $LCOV --base-directory `pwd` \
 # remove uninteresting entries
 $LCOV --extract coverage.info "*/corsika/*" --output-file coverage.info
 
-if [ $CI ]; then
-  echo "Coverage report on CI currently disabled"
-  # upload if on CI
-  # curl -s https://codecov.io/bash | bash -s - -f coverage.info -X gcov -x $GCOV
-else
-  # otherwise just print
-  $LCOV_DIR/bin/genhtml coverage.info -o coverage-report
-fi
+# if [ $CI ]; then
+#   # upload if on CI
+#   curl -s https://codecov.io/bash | bash -s - -f coverage.info -X gcov -x $GCOV
+# else
+#   # otherwise just print
+#   $LCOV_DIR/bin/genhtml coverage.info -o coverage-report
+# fi
+
+$LCOV_DIR/bin/genhtml coverage.info -o coverage-report