[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