From 6c8979684d64f149b873ac3e43529810da520c27 Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Fri, 30 Jan 2026 15:46:40 +0000 Subject: [PATCH] StaticAnalysis (#6) Reviewed-on: https://git.romainboullard.com/BigfootDev/Bigfoot/pulls/6 Co-authored-by: Romain BOULLARD Co-committed-by: Romain BOULLARD --- .clang-tidy | 23 +++++++++++ .gitea/workflows/sonarqube.yml | 38 +++++++++++++++++++ .../Sources/Utils/Include/Utils/Version.hpp | 2 +- conanfile.py | 2 +- sonar-project.properties | 11 ++++++ 5 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 .clang-tidy create mode 100644 .gitea/workflows/sonarqube.yml create mode 100644 sonar-project.properties diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..92f8412 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,23 @@ +# .clang-tidy +--- +Checks: > + -*, + bugprone-*, + clang-analyzer-*, + cppcoreguidelines-*, + modernize-*, + performance-*, + readability-*, + portability-*, + + -modernize-use-trailing-return-type, + -readability-avoid-const-params-in-decls, + -cppcoreguidelines-macro-usage, + -cppcoreguidelines-avoid-do-while + +HeaderFilterRegex: '^(Bigfoot)/' +ExcludeHeaderFilterRegex: '_generated.*' + +CheckOptions: + - key: readability-implicit-bool-conversion.AllowPointerConditions + value: true \ No newline at end of file diff --git a/.gitea/workflows/sonarqube.yml b/.gitea/workflows/sonarqube.yml new file mode 100644 index 0000000..f5612da --- /dev/null +++ b/.gitea/workflows/sonarqube.yml @@ -0,0 +1,38 @@ +name: Bigfoot + +on: + push: + branches: + - '**' + workflow_dispatch: + +jobs: + build-and-test: + runs-on: ubuntu-latest + timeout-minutes: 120 + container: + image: git.romainboullard.com/bigfootdev/linuxbigfootbuilder:main + name: "Sonarqube" + steps: + - name: Install Node.js + run: apt-get update && apt-get install -y nodejs + + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + submodules: recursive + + - name: Generate + run: | + conan install . --deployer=full_deploy --deployer-folder=build --remote=bigfootpackages -pr:h=clang -pr:b=clang --build=missing -s build_type=Debug -o bigfoot/*:build_tests=True -o bigfoot/*:tracy=False -o bigfoot/*:build_tools=True -o bigfoot/*:vulkan=True -o bigfoot/*:build_benchmarks=True + cmake -S . -B ./build/Debug --toolchain ./build/Debug/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_UNITY_BUILD=Debug -G "Ninja" + + - name: Clang-Tidy + run: run-clang-tidy -p ./build/Debug/ >> tidy_result.txt + + - name: SonarQube Scan + uses: SonarSource/sonarqube-scan-action@v7.0.0 + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: ${{ secrets.SONAR_HOST }} \ No newline at end of file diff --git a/Bigfoot/Sources/Utils/Include/Utils/Version.hpp b/Bigfoot/Sources/Utils/Include/Utils/Version.hpp index 2751ec9..68e0bfa 100644 --- a/Bigfoot/Sources/Utils/Include/Utils/Version.hpp +++ b/Bigfoot/Sources/Utils/Include/Utils/Version.hpp @@ -92,7 +92,7 @@ class Version return m_combined; } - [[nodiscard]] operator std::string() const; + operator std::string() const; constexpr Version& operator=(const Version& p_version) = default; diff --git a/conanfile.py b/conanfile.py index 5e7c205..ffad6ab 100644 --- a/conanfile.py +++ b/conanfile.py @@ -65,7 +65,7 @@ class Bigfoot(ConanFile): self.requires("eastl/3.27.01@bigfootdev/main", transitive_headers=True) self.requires("unordered_dense/4.8.1@bigfootdev/main", transitive_headers=True) self.requires("mimalloc/3.1.5@bigfootdev/main", transitive_headers=True) - self.requires("stduuid/1.2.3", transitive_headers=True) + self.requires("stduuid/1.2.3@bigfootdev/main", transitive_headers=True) self.requires("sqlite3/3.51.0@bigfootdev/main", transitive_headers=True) self.requires("cli11/2.6.0") self.requires("rapidhash/3.0@bigfootdev/main", transitive_headers=True) diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..9120d71 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,11 @@ +sonar.projectKey=Bigfoot + +sonar.projectVersion=0.1.0 + +sonar.sourceEncoding=UTF-8 + +sonar.sources=Bigfoot/Sources +sonar.tests=Bigfoot/Tests + +sonar.cxx.file.suffixes=.hpp,.cpp,.h +sonar.cxx.clangtidy.reportPaths=tidy_result.txt \ No newline at end of file