diff --git a/.github/workflows/analysis-qodana-action.yml b/.github/workflows/analysis-qodana-action.yml new file mode 100644 index 00000000000..b07b3e7db14 --- /dev/null +++ b/.github/workflows/analysis-qodana-action.yml @@ -0,0 +1,61 @@ +--- +name: Qodana-Action +on: + workflow_dispatch: + pull_request: + push: + branches: + - main + +jobs: + qodana: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + checks: write + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + + - name: Install Linux Dependencies + run: > + sudo apt-get update && sudo apt-get install ccache + linux-headers-$(uname -r) + + - name: CCache + uses: hendrikmuhs/ccache-action@main + with: + max-size: "1G" + key: ccache-qodana + + - name: Restore artifacts and install vcpkg + id: vcpkg-step + run: | + vcpkgCommitId=$(grep '.builtin-baseline' vcpkg.json | awk -F: '{print $2}' | tr -d '," ') + echo "vcpkg commit ID: $vcpkgCommitId" + echo "VCPKG_GIT_COMMIT_ID=$vcpkgCommitId" >> $GITHUB_ENV + + - name: Get vcpkg commit id from vcpkg.json + uses: lukka/run-vcpkg@main + with: + vcpkgGitURL: "https://github.com/microsoft/vcpkg.git" + vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }} + + - name: Get latest CMake and ninja + uses: lukka/get-cmake@main + + - name: Run CMake + uses: lukka/run-cmake@main + with: + configurePreset: linux-debug + + + - name: 'Qodana Scan' + uses: JetBrains/qodana-action@v2024.1 + with: + args: --log-level,debug,--compile-commands,./build/linux-debug/compile_commands.json + env: + QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} diff --git a/.github/workflows/analysis-qodana-docker.yml b/.github/workflows/analysis-qodana-docker.yml new file mode 100644 index 00000000000..d97dca40ae5 --- /dev/null +++ b/.github/workflows/analysis-qodana-docker.yml @@ -0,0 +1,62 @@ +--- +name: Qodana-Docker +on: + workflow_dispatch: + pull_request: + push: + branches: + - main + +jobs: + qodana: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + checks: write + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + + - name: Install Linux Dependencies + run: > + sudo apt-get update && sudo apt-get install ccache + linux-headers-$(uname -r) + + - name: CCache + uses: hendrikmuhs/ccache-action@main + with: + max-size: "1G" + key: ccache-qodana + + - name: Restore artifacts and install vcpkg + id: vcpkg-step + run: | + vcpkgCommitId=$(grep '.builtin-baseline' vcpkg.json | awk -F: '{print $2}' | tr -d '," ') + echo "vcpkg commit ID: $vcpkgCommitId" + echo "VCPKG_GIT_COMMIT_ID=$vcpkgCommitId" >> $GITHUB_ENV + + - name: Get vcpkg commit id from vcpkg.json + uses: lukka/run-vcpkg@main + with: + vcpkgGitURL: "https://github.com/microsoft/vcpkg.git" + vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }} + + - name: Get latest CMake and ninja + uses: lukka/get-cmake@main + + - name: Run CMake + uses: lukka/run-cmake@main + with: + configurePreset: linux-debug + + - name: Qodana Scan + run: | + docker run \ + -v $(pwd):/data/project/ \ + -v $(pwd):$(pwd) \ + -e QODANA_TOKEN="${{ secrets.QODANA_TOKEN }}" \ + jetbrains/qodana-clang:2024.1-eap \ + --compile-commands ./build/linux-debug/compile_commands.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 07701451aad..90c355fed54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,8 @@ endif() set(VCPKG_FEATURE_FLAGS "versions") set(VCPKG_BUILD_TYPE "release") +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + # ***************************************************************************** # Project canary diff --git a/CMakePresets.json b/CMakePresets.json index 49f631e1921..e548742e157 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -84,8 +84,19 @@ "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "DEBUG_LOG": "ON", - "SPEED_UP_BUILD_UNITY": "OFF", - "ASAN_ENABLED": "ON" + "SPEED_UP_BUILD_UNITY": "OFF" + } + }, + { + "name": "linux-debug-asan", + "inherits": "linux-release", + "displayName": "Linux - Debug Build", + "description": "Build Debug Mode With ASAN Enable", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "DEBUG_LOG": "ON", + "ASAN_ENABLED": "ON", + "SPEED_UP_BUILD_UNITY": "OFF" } }, {