diff mbox series

[v2,11/12] gitlab: integrate coverage report

Message ID 20221111145529.4020801-12-alex.bennee@linaro.org
State Superseded
Headers show
Series testing, docs, plugins, arm pre-PR | expand

Commit Message

Alex Bennée Nov. 11, 2022, 2:55 p.m. UTC
This should hopefully give is nice coverage information about what our
tests (or at least the subset we are running) have hit. Ideally we
would want a way to trigger coverage on tests likely to be affected by
the current commit.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 .gitlab-ci.d/buildtest.yml | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Nov. 11, 2022, 7:35 p.m. UTC | #1
On 11/11/22 15:55, Alex Bennée wrote:
> This should hopefully give is nice coverage information about what our
> tests (or at least the subset we are running) have hit. Ideally we
> would want a way to trigger coverage on tests likely to be affected by
> the current commit.

IIUC per [*] this will not appear in the pipeline but in 
https://gitlab.com/qemu-project/qemu/-/graphs/master/charts under 'Code 
coverage statistics', right?

If so, can you document this in this description? Also maybe this can
be linked in some docs/devel/ci*rst file.

[*] 
https://docs.gitlab.com/ee/ci/pipelines/settings.html#view-code-coverage-history

> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>   .gitlab-ci.d/buildtest.yml | 12 +++++++++++-
>   1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> index 7173749c52..d21b4a1fd4 100644
> --- a/.gitlab-ci.d/buildtest.yml
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -494,7 +494,17 @@ check-gprof-gcov:
>       IMAGE: ubuntu2004
>       MAKE_CHECK_ARGS: check
>     after_script:
> -    - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
> +    - cd build
> +    - gcovr --xml-pretty --exclude-unreachable-branches --print-summary
> +        -o coverage.xml --root ${CI_PROJECT_DIR} . *.p
> +  coverage: /^\s*lines:\s*\d+.\d+\%/
> +  artifacts:
> +    name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
> +    expire_in: 2 days

Hmm do we need the 'name' and 'expire_in' keys? That would be to keep 
the coverage.xml file?

> +    reports:
> +      coverage_report:
> +        coverage_format: cobertura
> +        path: build/coverage.xml
>   
>   build-oss-fuzz:
>     extends: .native_build_job_template
diff mbox series

Patch

diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index 7173749c52..d21b4a1fd4 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -494,7 +494,17 @@  check-gprof-gcov:
     IMAGE: ubuntu2004
     MAKE_CHECK_ARGS: check
   after_script:
-    - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
+    - cd build
+    - gcovr --xml-pretty --exclude-unreachable-branches --print-summary
+        -o coverage.xml --root ${CI_PROJECT_DIR} . *.p
+  coverage: /^\s*lines:\s*\d+.\d+\%/
+  artifacts:
+    name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
+    expire_in: 2 days
+    reports:
+      coverage_report:
+        coverage_format: cobertura
+        path: build/coverage.xml
 
 build-oss-fuzz:
   extends: .native_build_job_template