[ci]: use cppcheck and clang-tidy for static analysis
This commit is contained in:
parent
658a935c04
commit
f23d57d4ad
|
@ -0,0 +1,27 @@
|
|||
pipeline:
|
||||
analysis:
|
||||
image: alpine
|
||||
when:
|
||||
branch: master
|
||||
commands: |
|
||||
apk add --no-cache build-base cppcheck clang-extra-tools \
|
||||
imlib2-dev xorgproto \
|
||||
libxft-dev libexif-dev giflib-dev libwebp-dev >/dev/null
|
||||
make config.h version.h
|
||||
std="c99"
|
||||
run_cppcheck() {
|
||||
cppcheck --std="$std" --enable=performance,portability \
|
||||
--force --quiet --inline-suppr --error-exitcode=1 \
|
||||
--max-ctu-depth=8 -j"$(nproc)" \
|
||||
$(make OPT_DEP_DEFAULT="$1" dump_cppflags) \
|
||||
*.c
|
||||
}
|
||||
run_tidy() {
|
||||
checks="$(sed '/^#/d' .woodpecker/clang-tidy-checks | paste -d ',' -s)"
|
||||
clang-tidy --warnings-as-errors="*" --checks="$checks" --quiet *.c \
|
||||
-- -std="$std" $(make OPT_DEP_DEFAULT="$1" dump_cppflags)
|
||||
}
|
||||
run_cppcheck "0"
|
||||
run_cppcheck "1"
|
||||
run_tidy "0"
|
||||
run_tidy "1"
|
|
@ -0,0 +1,16 @@
|
|||
# checks
|
||||
clang-analyzer-*,clang-diagnostic-*,bugprone-*,performance-*,modernize-*
|
||||
misc-*,readability-*,android-cloexec-*,cert-*
|
||||
|
||||
# silence
|
||||
-misc-unused-parameters
|
||||
-bugprone-easily-swappable-parameters,-bugprone-narrowing-conversions,-bugprone-incorrect-roundings
|
||||
-bugprone-implicit-widening-of-multiplication-result,-bugprone-integer-division
|
||||
-readability-braces-around-statements,-readability-magic-numbers,-readability-isolate-declaration
|
||||
-readability-function-cognitive-complexity,-readability-else-after-return
|
||||
-readability-uppercase-literal-suffix,-readability-avoid-const-params-in-decls
|
||||
-android-cloexec-fopen,-android-cloexec-pipe
|
||||
|
||||
# false positive warnings
|
||||
-clang-analyzer-valist.Uninitialized
|
||||
-misc-no-recursion
|
Loading…
Reference in New Issue