From d41d48016e8039622d75e3222709098e9cd31586 Mon Sep 17 00:00:00 2001 From: Thomas Willetal Date: Mon, 5 Oct 2026 21:18:24 +0200 Subject: [PATCH] Add clang-tidy configuration and CI integration --- .clang-tidy | 7 +++++++ .github/workflows/ci-build.yml | 4 ++++ ctprintf/CMakePresets.json | 26 ++++++++++++++++++++++++++ scripts/build-dependencies.sh | 1 + 4 files changed, 38 insertions(+) create mode 100644 .clang-tidy diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..7ea8743 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,7 @@ +Checks: >- + -*, + bugprone-*, + clang-analyzer-*, + performance-*, + portability-* +WarningsAsErrors: '*' diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 1282d63..77d6d1a 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -27,6 +27,10 @@ jobs: - name: Lint CMake files run: ./scripts/lint.sh cmake-lint + - name: Run clang-tidy + working-directory: ctprintf + run: cmake --workflow --fresh --preset clang-tidy-workflow + - name: Configure, build, and test working-directory: ctprintf run: cmake --workflow --preset release-workflow diff --git a/ctprintf/CMakePresets.json b/ctprintf/CMakePresets.json index 83ed12d..87686aa 100644 --- a/ctprintf/CMakePresets.json +++ b/ctprintf/CMakePresets.json @@ -27,6 +27,14 @@ "CMAKE_BUILD_TYPE": "Release", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" } + }, + { + "name": "clang-tidy", + "displayName": "clang-tidy", + "inherits": "debug", + "cacheVariables": { + "CMAKE_CXX_CLANG_TIDY": "clang-tidy;--warnings-as-errors=*" + } } ], "buildPresets": [ @@ -37,6 +45,10 @@ { "name": "release", "configurePreset": "release" + }, + { + "name": "clang-tidy", + "configurePreset": "clang-tidy" } ], "testPresets": [ @@ -109,6 +121,20 @@ "name": "release" } ] + }, + { + "name": "clang-tidy-workflow", + "displayName": "clang-tidy: configure and build", + "steps": [ + { + "type": "configure", + "name": "clang-tidy" + }, + { + "type": "build", + "name": "clang-tidy" + } + ] } ] } diff --git a/scripts/build-dependencies.sh b/scripts/build-dependencies.sh index e6cec82..63d04e5 100755 --- a/scripts/build-dependencies.sh +++ b/scripts/build-dependencies.sh @@ -6,6 +6,7 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install --yes --no-install-recommends \ build-essential \ clang-format \ + clang-tidy \ cmake \ debhelper \ devscripts \