From 5333c070b94234c8391ce0dcdb27ec11f9e6b9ea Mon Sep 17 00:00:00 2001
From: Paul Reichmuth
Date: Tue, 14 Oct 2025 12:29:46 +0200
Subject: [PATCH] add qodana pipeline
---
.github/workflows/qodana_code_quality.yml | 39 ++++++++++++++++++
qodana.yaml | 49 +++++++++++++++++++++++
2 files changed, 88 insertions(+)
create mode 100644 .github/workflows/qodana_code_quality.yml
create mode 100644 qodana.yaml
diff --git a/.github/workflows/qodana_code_quality.yml b/.github/workflows/qodana_code_quality.yml
new file mode 100644
index 0000000..741d97a
--- /dev/null
+++ b/.github/workflows/qodana_code_quality.yml
@@ -0,0 +1,39 @@
+#-------------------------------------------------------------------------------#
+# Discover all capabilities of Qodana in our documentation #
+# https://www.jetbrains.com/help/qodana/about-qodana.html #
+#-------------------------------------------------------------------------------#
+
+name: Qodana
+on:
+ workflow_dispatch:
+ pull_request:
+ push:
+ branches:
+ - dev
+
+jobs:
+ qodana:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ checks: write
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+ fetch-depth: 0
+ - name: 'Qodana Scan'
+ uses: JetBrains/qodana-action@v2025.2
+ env:
+ QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
+ with:
+ # When pr-mode is set to true, Qodana analyzes only the files that have been changed
+ pr-mode: false
+ use-caches: true
+ post-pr-comment: true
+ use-annotations: true
+ # Upload Qodana results (SARIF, other artifacts, logs) as an artifact to the job
+ upload-result: false
+ # quick-fixes available in Ultimate and Ultimate Plus plans
+ push-fixes: 'none'
\ No newline at end of file
diff --git a/qodana.yaml b/qodana.yaml
new file mode 100644
index 0000000..173a1ce
--- /dev/null
+++ b/qodana.yaml
@@ -0,0 +1,49 @@
+#-------------------------------------------------------------------------------#
+# Qodana analysis is configured by qodana.yaml file #
+# https://www.jetbrains.com/help/qodana/qodana-yaml.html #
+#-------------------------------------------------------------------------------#
+
+#################################################################################
+# WARNING: Do not store sensitive information in this file, #
+# as its contents will be included in the Qodana report. #
+#################################################################################
+version: "1.0"
+
+#Specify inspection profile for code analysis
+profile:
+ name: qodana.starter
+
+#Enable inspections
+#include:
+# - name:
+
+#Disable inspections
+#exclude:
+# - name:
+# paths:
+# -
+
+projectJDK: "25" #(Applied in CI/CD pipeline)
+
+#Execute shell command before Qodana execution (Applied in CI/CD pipeline)
+#bootstrap: sh ./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)
+
+# Quality gate. Will fail the CI/CD pipeline if any condition is not met
+# severityThresholds - configures maximum thresholds for different problem severities
+# testCoverageThresholds - configures minimum code coverage on a whole project and newly added code
+# Code Coverage is available in Ultimate and Ultimate Plus plans
+#failureConditions:
+# severityThresholds:
+# any: 15
+# critical: 5
+# testCoverageThresholds:
+# fresh: 70
+# total: 50
+
+#Qodana supports other languages, for example, Python, JavaScript, TypeScript, Go, C#, PHP
+#For all supported languages see https://www.jetbrains.com/help/qodana/linters.html
+linter: jetbrains/qodana-jvm-community:2025.2