- Add ENABLE_COVERAGE CMake option with gcov flags - Create collect-coverage.sh script for LCOV workflow - Add Qt6 test files with QTest framework - Update Jenkinsfile with Coverage stage (main/master/coverage.*) - Update CI Docker image with lcov and genhtml packages - Add .gitignore entries for coverage artifacts - Add COVERAGE.md documentation Coverage workflow: 1. Configure with -DENABLE_COVERAGE=ON 2. Build and run tests to generate .gcda/.gcno files 3. Collect coverage with lcov 4. Filter out Qt/system libraries 5. Generate HTML report and lcov.info for Jenkins Jenkins publishes coverage/lcov.info using Coverage Plugin. Coverage stage only runs on protected branches. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Entire-Checkpoint: 7783c7698334 Entire-Checkpoint: 70341e29996b Signed-off-by: twi-devel <torsten.wierschin@life-maps.com>
33 lines
671 B
Docker
33 lines
671 B
Docker
FROM ubuntu:26.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
python3 \
|
|
clang-format \
|
|
cmake \
|
|
ninja-build \
|
|
git \
|
|
g++ \
|
|
make \
|
|
ca-certificates \
|
|
openssh-client \
|
|
pkg-config \
|
|
qtbase5-dev \
|
|
qt6-base-dev \
|
|
qt6-base-dev-tools \
|
|
qt6-tools-dev \
|
|
qt6-tools-dev-tools \
|
|
lcov \
|
|
genhtml && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set Qt platform for headless testing
|
|
ENV QT_QPA_PLATFORM=offscreen
|
|
|
|
# Configure git for containerized environments
|
|
RUN git config --global --add safe.directory "*"
|
|
|
|
WORKDIR /workspace
|