Skip to content
Snippets Groups Projects
Commit 1395ef3d authored by Lars Bilke's avatar Lars Bilke
Browse files

Merge branch 'ci-checks' into 'master'

[CI] cppcheck

See merge request ogs/ogs!3053
parents e8d82397 1a4d020d
No related branches found
No related tags found
No related merge requests found
version: "2"
exclude_patterns:
- "ThirdParty/"
- "Tests/"
plugins:
duplication:
enabled: false
...@@ -47,7 +47,7 @@ include: ...@@ -47,7 +47,7 @@ include:
- local: '/scripts/ci/jobs/build-win.yml' - local: '/scripts/ci/jobs/build-win.yml'
- local: '/scripts/ci/jobs/build-mac.yml' - local: '/scripts/ci/jobs/build-mac.yml'
- local: '/scripts/ci/jobs/checks.yml' - local: '/scripts/ci/jobs/checks.yml'
- template: 'Code-Quality.gitlab-ci.yml' # - template: 'Code-Quality.gitlab-ci.yml' # see !3053
- local: '/scripts/ci/jobs/code-quality.yml' - local: '/scripts/ci/jobs/code-quality.yml'
- local: '/scripts/ci/jobs/build-gui-linux.yml' - local: '/scripts/ci/jobs/build-gui-linux.yml'
- local: '/scripts/ci/jobs/build-gui-win.yml' - local: '/scripts/ci/jobs/build-gui-win.yml'
......
code_quality: cppcheck:
stage: check stage: check
image: $CONTAINER_GCC_IMAGE
needs: []
before_script:
- mkdir -p build
- cd build
script: >-
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF \
-DOGS_USE_UNITY_BUILDS=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
bash cppcheck.sh
artifacts:
reports:
codequality: build/cppcheck.json
expire_in: 1 week
# Disabled, see !3053
.code_quality:
stage: check
tags: [docker, envinf1]
needs: [] needs: []
rules: rules:
variables: variables:
......
if(NOT CPPCHECK_TOOL_PATH) if(NOT CPPCHECK_TOOL_PATH)
return() return()
endif() endif()
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
configure_file(${PROJECT_SOURCE_DIR}/scripts/test/cppcheck.in.sh ${PROJECT_BINARY_DIR}/cppcheck.sh)
if(DEFINED ENV{NUM_THREADS}) if(DEFINED ENV{NUM_THREADS})
set(CPPCHECK_THREADS -j $ENV{NUM_THREADS}) set(CPPCHECK_THREADS -j $ENV{NUM_THREADS})
...@@ -8,9 +10,11 @@ endif() ...@@ -8,9 +10,11 @@ endif()
add_custom_target(cppcheck add_custom_target(cppcheck
COMMAND ${CPPCHECK_TOOL_PATH} COMMAND ${CPPCHECK_TOOL_PATH}
--force --project=${PROJECT_BINARY_DIR}/compile_commands.json
--language=c++
--std=c++17
--enable=all --enable=all
# --inconclusive --inconclusive
${CPPCHECK_THREADS} ${CPPCHECK_THREADS}
-i ${PROJECT_BINARY_DIR}/CMakeFiles -i ${PROJECT_BINARY_DIR}/CMakeFiles
-i ${PROJECT_SOURCE_DIR}/ThirdParty -i ${PROJECT_SOURCE_DIR}/ThirdParty
......
# Runs cppcheck with GitLab CI (CodeClimate) output
OUTPUT_FILE=${PROJECT_BINARY_DIR}/cppcheck.json
${CPPCHECK_TOOL_PATH} \
--project=${PROJECT_BINARY_DIR}/compile_commands.json \
--language=c++ \
--std=c++17 \
--enable=all \
--inconclusive \
-j 4 \
-i ${PROJECT_BINARY_DIR}/CMakeFiles \
-i ${PROJECT_SOURCE_DIR}/ThirdParty \
-i ${PROJECT_SOURCE_DIR}/Applications/DataExplorer \
-i ${PROJECT_SOURCE_DIR}/Tests \
--template='{\n "description": "{message}",\n "location": {\n "path": "{file}",\n "lines": {\n "begin": {line}\n }\n }\n},' \
--output-file=$OUTPUT_FILE \
echo "$( \
# add brackets
printf '[\n'; \
cat $OUTPUT_FILE | \
# strip source code absolute path
sed 's|${PROJECT_SOURCE_DIR}/||' | \
# escape strings
sed 's/string literal "\(.*\)" to/string literal \\"\1\\" to/g' | \
# remove last comma
sed '$s/,$//'; \
printf ']\n')" \
> $OUTPUT_FILE
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment