feat: Add LCOV coverage support for Jenkins CI
qt-migration-copilot-demo/pipeline/pr-main There was a failure building this commit
qt-migration-copilot-demo/pipeline/head There was a failure building this commit

- 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
This commit is contained in:
torstenandCopilot committed 2026-10-22 17:17:39 +02:00
1 parent 9e3c6eef2e
commit 8ef6529c0c
19 files changed
+733 -235

No files matched your search

+6 -14
View File
@@ -1,19 +1,11 @@
#include <QApplication>
#include "MainWindow.h"
#include <QApplication>
#include <QScreen>
#if __has_include(<print>)
#include <print>
#endif
[[nodiscard]] auto main(int argc, char* argv[]) -> int
int main(int argc, char *argv[])
{
QApplication app{argc, argv};
QApplication a(argc, argv);
MainWindow w;
w.show();
// Qt6 uses UTF-8 by default; no codec setup needed
MainWindow window;
window.show();
return app.exec();
return a.exec();
}