C/C++ 用 Qodana
C/C++ 用 Qodana リンターの Docker イメージは、さまざまな使用シナリオをサポートするために提供されています。
継続的インテグレーションの一環として分析を定期的に実行する (CI ベースの実行 )
シングルショット分析 (たとえば、現地で行われる)
分析をローカルで実行する
C/C++ リンター用の Qodana の Docker 化バージョンを実行するには、次の手順を実行します。
Docker Hub からイメージを取得します。
docker pull jetbrains/qodana-clang:2024.1-eap次のコマンドを実行します。
docker run \ -v <source-directory>/:/data/project/ \ -v <output-directory>/:/data/results/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-clang:2024.1-eapここで、
source-directory
とoutput-directory
は、それぞれプロジェクトソースコードディレクトリと分析結果ディレクトリへの完全なローカルパスです。QODANA_TOKEN
変数は、Ultimate と Ultimate Plus リンターによって必要なプロジェクトトークンを参照します。
output-directory
には必要な結果がすべて含まれます。テクニカルガイドの説明に従って、コマンドをさらに調整できます。
解析を連続して数回実行する場合は、docker run
で再度使用する前に結果ディレクトリをクリーンアップしていることを確認してください。
CI で分析を実行する
GitHub で分析を実行する
GitHub では、Qodana は Qodana Scan
(英語) GitHub アクションとして実装されています。これを構成するには、ワークフロー構成を含む .github/workflows/code_quality.yml
ファイルを保存します。
このワークフローを使用すると、Qodana はメインブランチ、リリースブランチ、リポジトリに届くプルリクエストで実行されます。
Qodana クラウドで承認し、レポートを Qodana クラウドに転送するには、次の手順に従います。
GitHub UI で、
QODANA_TOKEN
暗号化シークレット(英語)を作成し、プロジェクトトークンをその値として保存します。GitHub ワークフローで、次のスニペットを追加して
Qodana Scan
アクションを呼び出します。- name: 'Qodana Scan' uses: JetBrains/qodana-action@v2024.1 with: args: -l jetbrains/qodana-clang:2024.1-eap env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
qodana.yaml 経由で設定する
Qodana は分析構成の qodana.yaml
ファイルを認識するため、追加のパラメーターを渡す必要はありません。C/C++ の Qodana の場合は、次のように構成できます。
include
およびexclude
オプションを使用するインスペクション。詳細については、YAML ファイルセクションを参照してください。boostrap
オプションを使用してリンターの前に実行されるコマンド。fail-threshold
オプションを使用した品質ゲート。
使用統計
JetBrains EAP ユーザー契約(英語)によれば、当社はユーザーエクスペリエンスをさらに向上させるために、サードパーティのサービスを使用して当社の機能の使用状況を分析することができます。すべてのデータは匿名で収集されます。統計を無効にするには、--no-statistics=true
CLI オプションを使用します。
関連ページ:
![](https://pleiades.io/icons/jetbrains_logo.png)
C/C++ 用 Qodana
C/C++ 用の Qodana を使用すると、コンパイルデータベースを含む C および C++ プロジェクトを分析できます。このリンターは Clang-Tidy リンターに基づいており、AMD64 および ARM64 アーキテクチャで動作します。C/C++ 用の Qodana は、CLion によって提供されるおよびインスペクションを供給することにより、既存の Clang-Tidy インスペクションを拡張します。C/C++ 用の Qodana は、Community、Ultimate、Ultimat...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/qc-about-diagram.png)
Qodana クラウド
Qodana を複数のプロジェクトまたはリポジトリで実行する場合、特にコードベースが複数のサーバーと仮想プライベートネットワークに分散されていて、各チームが独立して作業している場合は、すべての分析レポートを 1 か所に読み込んで集約すると便利です。このような場合、すべての Qodana インスタンスからレポート情報を収集して表示するための集中型ソリューションが役立ちます。Qodana クラウドは、さまざまな Qodana レポートを蓄積し、プロジェクトの進捗状況を一元的に追跡するのに役立つクラウ...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/qc-create-project.png)
プロジェクト
プロジェクトは、Qodana レポートを蓄積します。各プロジェクトは、プロジェクトトークンによって一意に識別されます。このトークンは、Qodana レポートのアップロードに使用されます。プロジェクトの作成:オンボーディング段階では、Qodana Cloud がすでに最初のプロジェクトの作成を支援しているため、これらの手順は追加のプロジェクトを作成する場合にのみ適用されます。チームページで、ボタンをクリックします。以下で説明するウィザードの手順に従います。Qodana Cloud からアクセスでき...