[glib: 3/5] ci: Generate Cobertura XML and use it to feed gitlab for MR integration
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 3/5] ci: Generate Cobertura XML and use it to feed gitlab for MR integration
- Date: Thu, 15 Sep 2022 01:41:36 +0000 (UTC)
commit 3ddfb10b0b050992328955cc5f426bce1a35050e
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Thu Jul 21 01:05:42 2022 +0200
ci: Generate Cobertura XML and use it to feed gitlab for MR integration
gitlab has coverage integration in MRs, but we need a cobertura
formatted XML files (each must be less than 10 MB [1]) to show it, so
generate it using a python script and inform gitlab about it.
See https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization.html
[1] https://gitlab.com/gitlab-org/gitlab/-/issues/328772#note_840831654
.gitlab-ci.yml | 6 +++++-
.gitlab-ci/coverage-docker.sh | 8 ++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 684afddb2a..3b6f44ea6a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,7 +10,7 @@ cache:
- _ccache/
variables:
- FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v18"
+ FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v19"
COVERITY_IMAGE: "registry.gitlab.gnome.org/gnome/glib/coverity:v7"
DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v13"
MINGW_IMAGE: "registry.gitlab.gnome.org/gnome/glib/mingw:v9"
@@ -482,6 +482,10 @@ coverage:
paths:
- _coverage/coverage/index.html
- _coverage
+ reports:
+ coverage_report:
+ coverage_format: cobertura
+ path: _coverage/*-cobertura/cobertura-*.xml
before_script:
- bash .gitlab-ci/show-execution-environment.sh
script:
diff --git a/.gitlab-ci/coverage-docker.sh b/.gitlab-ci/coverage-docker.sh
index df3273fa0b..0b9abc0175 100755
--- a/.gitlab-ci/coverage-docker.sh
+++ b/.gitlab-ci/coverage-docker.sh
@@ -10,6 +10,14 @@ for path in _coverage/*.lcov; do
lcov --config-file .lcovrc -r "${path}" '*/_build/*' -o "$(pwd)/${path}"
# Remove any coverage from system files
lcov --config-file .lcovrc -e "${path}" "$(pwd)/*" -o "$(pwd)/${path}"
+
+ # Convert to cobertura format for gitlab integration
+ cobertura_base="${path/.lcov}-cobertura"
+ cobertura_xml="${cobertura_base}.xml"
+ lcov_cobertura "${path}" --output "${cobertura_xml}"
+ mkdir -p "${cobertura_base}"
+ cobertura-split-by-package.py "${cobertura_xml}" "${cobertura_base}"
+ rm -f "${cobertura_xml}"
done
genhtml \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]