From c272fdd461a0bda6dd6dc1c7cd9f02c1734ca3c0 Mon Sep 17 00:00:00 2001
From: Bjoern Ludwig <bjoern.ludwig@ptb.de>
Date: Sat, 21 Jan 2023 12:41:14 +0100
Subject: [PATCH] ci(coverage): introduce codecov reporter to pipeline

---
 .gitlab-ci.yml | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f18a7c4..d16e00c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,8 +14,15 @@ variables:
   http_proxy: "http://webproxy:8080"
   https_proxy: "http://webproxy:8080"
 
-.install-deps: &install-deps
-  - poetry install
+.install-reporter-and-upload-to-codecov: &install-reporter-and-upload-to-codecov
+  - curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import
+  - curl -Os https://uploader.codecov.io/latest/linux/codecov
+  - curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
+  - curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig
+  - gpgv codecov.SHA256SUM.sig codecov.SHA256SUM
+  - shasum -a 256 -c codecov.SHA256SUM
+  - chmod +x codecov
+  - ./codecov --upstream ${HTTPS_PROXY} --token ${CODECOV_TOKEN}
 
 before_script:
   - pip install --upgrade pip virtualenv
@@ -31,6 +38,7 @@ quick-test:
     - pytest -m "not webtest" --verbose --cov=zema_emc_annotated
           --junitxml=junit.xml
     - coverage xml
+    - *install-reporter-and-upload-to-codecov
   coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
   artifacts:
     when: always
@@ -42,6 +50,7 @@ quick-test:
       coverage_report:
         coverage_format: cobertura
         path: coverage.xml
+  environment: coverage
 
 online-test:
   rules:
@@ -51,6 +60,7 @@ online-test:
     - pytest -m webtest --verbose --cov=zema_emc_annotated
           --junitxml=junit.xml
     - coverage xml
+    - *install-reporter-and-upload-to-codecov
   coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
   artifacts:
     when: always
@@ -62,6 +72,7 @@ online-test:
       coverage_report:
         coverage_format: cobertura
         path: coverage.xml
+  environment: coverage
 
 mypy:
   rules:
-- 
GitLab