CI: use compilation database for clang-tidy job
[tinc] / .ci / warn / run.sh
index 65f46eb..2add1a5 100755 (executable)
@@ -3,20 +3,28 @@
 set -euo pipefail
 
 test -n "$CC"
-export CFLAGS="${CFLAGS:-} -Werror"
 
 result=0
 
+clang_tidy() {
+  rm -f compile_commands.json
+  ln -s "$1"/compile_commands.json .
+  run-clang-tidy || result=$?
+}
+
 check_warnings() {
-  git clean -dfx
+  flavor="$1"
+  dir="${CC}_${flavor}"
+
+  ./.ci/build.sh "$dir" -Dwerror=true || result=$?
 
-  autoreconf -fsi
-  # shellcheck disable=SC2046
-  ./configure $(sh .ci/conf.sh)
-  make -j"$(nproc)" all extra || result=$?
+  case "$CC" in
+  clang*) clang_tidy "$dir" ;;
+  esac
 }
 
-check_warnings
-check_warnings --disable-legacy-protocol
+check_warnings default
+check_warnings nolegacy
+check_warnings gcrypt
 
 exit $result