diff --git a/.github/workflows/qodana_code_quality.yml b/.github/workflows/qodana_code_quality.yml new file mode 100644 index 0000000..2fdd415 --- /dev/null +++ b/.github/workflows/qodana_code_quality.yml @@ -0,0 +1,20 @@ +name: Qodana +on: + workflow_dispatch: + pull_request: + push: + branches: + - dev + - main + +jobs: + qodana: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: 'Qodana Scan' + uses: JetBrains/qodana-action@v2024.1 + env: + QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} \ No newline at end of file diff --git a/qodana.yaml b/qodana.yaml new file mode 100644 index 0000000..52b97e8 --- /dev/null +++ b/qodana.yaml @@ -0,0 +1,29 @@ +#-------------------------------------------------------------------------------# +# Qodana analysis is configured by qodana.yaml file # +# https://www.jetbrains.com/help/qodana/qodana-yaml.html # +#-------------------------------------------------------------------------------# +version: "1.0" + +#Specify inspection profile for code analysis +profile: + name: qodana.recommended + +#Enable inspections +#include: +# - name: + +#Disable inspections +#exclude: +# - name: +# paths: +# - + +#Execute shell command before Qodana execution (Applied in CI/CD pipeline) +bootstrap: sudo ./scripts/prepare-qodana.sh + +#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline) +#plugins: +# - id: #(plugin id can be found at https://plugins.jetbrains.com) + +#Specify Qodana linter for analysis (Applied in CI/CD pipeline) +linter: jetbrains/qodana-clang:2024.1-eap diff --git a/scripts/prepare-qodana.sh b/scripts/prepare-qodana.sh new file mode 100755 index 0000000..1517a34 --- /dev/null +++ b/scripts/prepare-qodana.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# Run from this directory +cd "$(dirname "$0")" || (echo "Running from $(pwd)" && exit 1) + +# Include the build functions +. ./build-functions.sh + +# Root access is required to install the dependencies. +check_root + +# Check for required commands +check_dependencies + +# Install dependencies +install_dependencies + +echo "Ninja: $(ninja --version), CMake: $(cmake --version)" + +# Build and install BLAKE3 +build_blake3 + +# Configure CMake +cd .. || abort +/usr/local/bin/cmake -S . -B build -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja +