From 12092335850481f1a7f2b041f801737f4bf76ebf Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Tue, 20 Jul 2021 15:31:05 +0200 Subject: [PATCH] [ci] Added lizard code complexity analyser to Doxygen-job. - Adds issue report on CI log - Adds full html report as artifact - Adds code metric lizard_issues (currently 87) --- Documentation/mainpage.dox.in | 4 ++++ config-cpp-dependencies.txt | 1 - scripts/ci/jobs/build-docs.yml | 15 +++++++++++++-- scripts/cmake/DocumentationSetup.cmake | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Documentation/mainpage.dox.in b/Documentation/mainpage.dox.in index 46b7acb812e..5839fae2f97 100644 --- a/Documentation/mainpage.dox.in +++ b/Documentation/mainpage.dox.in @@ -31,6 +31,10 @@ * - Data Explorer (GUI) manual: https://gitlab.opengeosys.org/ogs/data_explorer_manual/-/jobs/artifacts/master/raw/ogsde-man.pdf?job=build * - Discussion forum: https://discourse.opengeosys.org * + * \section deps Dependencies + * + * @image html cmake-dependencies.svg "cmake-dependencies" width=300% + * @image html cpp-dependencies.svg "cpp-dependencies" width=300% * * \section internal_modules Internal Modules * diff --git a/config-cpp-dependencies.txt b/config-cpp-dependencies.txt index 0680f5f3794..b1bf326da09 100644 --- a/config-cpp-dependencies.txt +++ b/config-cpp-dependencies.txt @@ -94,4 +94,3 @@ blacklist: [ Applications/Utils Tests ] - diff --git a/scripts/ci/jobs/build-docs.yml b/scripts/ci/jobs/build-docs.yml index e3fd6349c31..696398b1ccf 100644 --- a/scripts/ci/jobs/build-docs.yml +++ b/scripts/ci/jobs/build-docs.yml @@ -20,12 +20,20 @@ build docs: # HACK to easier linking to the generated pages - echo '<meta http-equiv="REFRESH" content="0;URL=build/docs/index.html">' >> Doxygen.html - mkdir -p build + # cpp-dependencies - NUM_CYCLES=`/opt/cppcheck/bin/cpp-dependencies --stats|grep cycles|cut -d " " -f 2` - echo "num_cycles $NUM_CYCLES" > metrics.txt - /opt/cppcheck/bin/cpp-dependencies --graph cpp-dependencies.dot && dot -Tsvg cpp-dependencies.dot -o build/cpp-dependencies.svg + # lizard + - python /opt/lizard/lizard.py -l cpp -w -t 8 > lizard.txt || true + - cat lizard.txt + - NUM_LIZARD_ISSUES=`cat lizard.txt | wc -l` + - echo "lizard_issues $NUM_LIZARD_ISSUES" >> metrics.txt + - python /opt/lizard/lizard.py -l cpp -t 8 --html -o Lizard.html + # build - cd build - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF -DOGS_USE_POETRY=OFF - - cmake . --graphviz=cmake-dependencies.dot && dot -Tsvg cmake-dependencies.dot + - cmake . --graphviz=cmake-dependencies.dot && dot -Tsvg cmake-dependencies.dot -o cmake-dependencies.svg - cmake . -DOGS_BUILD_PROCESSES=SteadyStateDiffusion - cmake --build . --target doc > >(tee make-docs.output) - cat DoxygenWarnings.log|grep -v 'too many nodes' @@ -53,7 +61,10 @@ build docs: paths: - Doxygen.html - build/docs - - build/*-dependencies.svg + - build/cpp-dependencies.svg + - build/cmake-dependencies.svg + - Lizard.html + - lizard.txt expire_in: 1 week reports: metrics: build/metrics.txt diff --git a/scripts/cmake/DocumentationSetup.cmake b/scripts/cmake/DocumentationSetup.cmake index a9ce78bab59..026aa6a22bc 100644 --- a/scripts/cmake/DocumentationSetup.cmake +++ b/scripts/cmake/DocumentationSetup.cmake @@ -38,7 +38,7 @@ set(DOXYGEN_CITE_BIB_FILES set(DOXYGEN_QUIET YES) set(DOXYGEN_WARN_LOGFILE ${PROJECT_BINARY_DIR}/DoxygenWarnings.log) set(DOXYGEN_EXCLUDE_PATTERNS moc_* ui_* CMake*) -set(DOXYGEN_IMAGE_PATH ${PROJECT_SOURCE_DIR}/Documentation/images) +set(DOXYGEN_IMAGE_PATH ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/Documentation/images) set(DOXYGEN_SOURCE_BROWSER YES) set(DOXYGEN_INLINE_SOURCES YES) set(DOXYGEN_REFERENCED_BY_RELATION YES) -- GitLab