ci: export clang-tidy fixes as an artifact

stage/master/nightly/2023/12/06
Kyle Edwards 2022-12-07 10:39:25 -05:00
parent 57b94595a3
commit 1f0c28c840
8 changed files with 36 additions and 1 deletions

3
.gitignore vendored
View File

@ -32,3 +32,6 @@
/.vs/
# Visual Studio build directory
/out/
# clang-tidy output
/clang-tidy-fixes.patch

View File

@ -112,6 +112,7 @@ l:tidy-fedora39:
extends:
- .fedora39_tidy
- .cmake_build_linux
- .cmake_tidy_artifacts
- .linux_x86_64_tags
- .cmake_cdash_artifacts
- .run_automatically

2
.gitlab/.gitignore vendored
View File

@ -19,3 +19,5 @@
/unstable-jom*
/watcom
/wix*
/clang-tidy-fixes
/num_warnings.txt

View File

@ -153,3 +153,10 @@
- ${CMAKE_CI_BUILD_DIR}/html
exclude:
- ${CMAKE_CI_BUILD_DIR}/html/.buildinfo
.cmake_tidy_artifacts:
artifacts:
expire_in: 1d
when: always
paths:
- clang-tidy-fixes.patch

View File

@ -1,5 +1,6 @@
set(CMake_RUN_CLANG_TIDY ON CACHE BOOL "")
set(CMake_USE_CLANG_TIDY_MODULE ON CACHE BOOL "")
set(CMake_CLANG_TIDY_MODULE "$ENV{CI_PROJECT_DIR}/Utilities/ClangTidyModule/build/libcmake-clang-tidy-module.so" CACHE FILEPATH "")
set(CMake_CLANG_TIDY_EXPORT_FIXES_DIR "$ENV{CI_PROJECT_DIR}/.gitlab/clang-tidy-fixes" CACHE PATH "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common.cmake")

View File

@ -65,6 +65,7 @@ if ("$ENV{CTEST_NO_WARNINGS_ALLOWED}" AND num_warnings GREATER 0)
message(FATAL_ERROR
"Found ${num_warnings} warnings (treating as fatal).")
endif ()
file(WRITE "$ENV{CI_PROJECT_DIR}/.gitlab/num_warnings.txt" "${num_warnings}\n")
if (ctest_build_args)
message(FATAL_ERROR

View File

@ -0,0 +1,21 @@
git config user.name "Kitware Robot"
git config user.email "kwrobot@kitware.com"
clang-apply-replacements --style=file .gitlab/clang-tidy-fixes
git add .
if [ -n "$(git status --porcelain)" ]; then
quietly git commit --file=- <<EOF
WIP: clang-tidy: <SHORT DESCRIPTION OF CHANGE HERE>
<LONGER DESCRIPTION OF CHANGE HERE.>
EOF
git format-patch --output=clang-tidy-fixes.patch -1 -N
echo "Patch from clang-tidy available, check artifacts of this CI job." >&2
fi
readonly num_warnings="$(cat .gitlab/num_warnings.txt)"
if [ "$num_warnings" -ne 0 ]; then
echo "Found $num_warnings warnings (treating as fatal)." >&2
exit 1
fi

View File

@ -82,7 +82,6 @@
variables:
CMAKE_CONFIGURATION: fedora39_tidy
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_CI_NO_INSTALL: 1
.fedora39_clang_analyzer: