ci: Enable coverage reports in test build

While we don't have an high number of tests, we still have some code
coverage and so we can track this via gitlab CI, given that it supports it
natively.

So add gcovr to the DockerFile dependency, build with -Db_coverage=true
meson native parameter, and add another manual job to make ninja to generate
the coverage reports on requests or in any master or tag ref.

Keep the artifacts around to be able to browse the generated HTML files and
eventually print the text reports so that they can be parsed by gitlab.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1236
This commit is contained in:
Marco Trevisan (Treviño) 2020-05-06 15:27:41 +02:00 committed by Georges Basile Stavracas Neto
parent 322b51cded
commit 5c4938e479
2 changed files with 23 additions and 2 deletions

View File

@ -4,6 +4,7 @@ stages:
- review - review
- build - build
- test - test
- coverage
check-commit-log: check-commit-log:
stage: review stage: review
@ -17,7 +18,7 @@ check-commit-log:
build-mutter: build-mutter:
stage: build stage: build
script: script:
- meson . build -Dbuildtype=debugoptimized -Degl_device=true -Dwayland_eglstream=true --werror --prefix /usr - meson . build -Dbuildtype=debugoptimized -Db_coverage=true -Degl_device=true -Dwayland_eglstream=true --werror --prefix /usr
- ninja -C build - ninja -C build
- ninja -C build install - ninja -C build install
artifacts: artifacts:
@ -74,10 +75,30 @@ test-mutter:
- > - >
dbus-run-session -- xvfb-run -s '+iglx -noreset' dbus-run-session -- xvfb-run -s '+iglx -noreset'
meson test -C build --no-rebuild -t 10 --verbose --no-stdsplit --print-errorlogs --wrap catchsegv meson test -C build --no-rebuild -t 10 --verbose --no-stdsplit --print-errorlogs --wrap catchsegv
artifacts:
expire_in: 1 day
paths:
- build
only: only:
- merge_requests - merge_requests
- /^.*$/ - /^.*$/
test-mutter-coverage:
stage: coverage
dependencies:
- test-mutter
script:
- ninja -C build coverage
- cat build/meson-logs/coverage.txt
artifacts:
paths:
- build/meson-logs
when: manual
except:
refs:
- tags
- master
can-build-gnome-shell: can-build-gnome-shell:
stage: test stage: test
dependencies: dependencies:

View File

@ -16,7 +16,7 @@ RUN dnf -y update && dnf -y upgrade && \
# For running unit tests # For running unit tests
dnf install -y xorg-x11-server-Xvfb mesa-dri-drivers dbus dbus-x11 \ dnf install -y xorg-x11-server-Xvfb mesa-dri-drivers dbus dbus-x11 \
'*/xvfb-run' gdm-lib accountsservice-libs gnome-control-center \ '*/xvfb-run' gdm-lib accountsservice-libs gnome-control-center gcovr \
--setopt=install_weak_deps=False && \ --setopt=install_weak_deps=False && \
# GNOME Shell # GNOME Shell