GitLab CI/CD
GitLab CI/CD(英語) は、様々な CI/CD 手法を用いたソフトウェア開発ツールです。このセクションでは、Qodana Scan GitLab Pipeline コンポーネント(英語)の実行方法について説明します。
始める前に
Qodana クラウド
このセクションのすべての構成例では、Qodana Cloud によって生成されたプロジェクトトークンを使用します。このトークンは、有料の Qodana リンターでは必須であり、コミュニティリンターで使用する場合はオプションです。Qodana Cloud UI でプロジェクトトークンを生成する方法については、次のセクションを参照してください。
プロジェクト設定セクションでは、Qodana Cloud を初めて使用する際にプロジェクトトークンを生成する方法について説明します。
プロジェクトを管理するセクションでは、既存の Qodana Cloud 組織内でプロジェクトトークンを作成する方法について説明します。
プロジェクトトークンを取得したら、パイプラインまたはワークフローで識別するために QODANA_TOKEN 変数を使用できます。
https://qodana.cloud/ 以外の Qodana Cloud インスタンスを使用している場合は、QODANA_ENDPOINT 環境変数を設定して上書きします。
プロジェクトを準備する
プロジェクトリポジトリが GitLab CI/CD からアクセスできることを確認します。
GitLab CI/CD UI で、次の環境変数を作成します。
変数名 | 説明 |
|---|---|
| 生成されたプロジェクトトークン。GitLab CI/CD Web サイト(英語)の説明に従って、GitLab CI/CD UI に保存してください。また、変数が保護されていないこと、およびフラグが有効になっていることを確認してください。 |
| クイックフィックスおよびサマリーレポートをマージリクエストのコメントとして表示するには、個人アクセストークン(英語)またはプロジェクトアクセストークン(英語)が必要です。個人アクセストークンの所有者は、すべての Qodana アクションの作成者として表示されるため、プロジェクトアクセストークンの使用をお勧めします。 クイックフィックスの場合、アクセストークンを構成するときに |
プロジェクトのルートディレクトリに .gitlab-ci.yml ファイルを保存します。このファイルには、GitLab CI/CD で使用されるパイプライン設定が含まれます。
引数表記
Qodana は、引数を指定する際にシェルライクな表記法をサポートしています。この表記法では、キーと値をスペースで区切り、値をシングルクォートまたはダブルクォートで囲みます。これは、Qodana の設定時に引数を指定する推奨方法です。
この表には、両方の表記法の例が含まれています。
サンプル | 実際の表記 | 従来の記法 |
|---|---|---|
単一の引数 |
--profile-name qodana.starter
|
--profile-name,qodana.starter
|
2 つの論点 |
--fail-threshold 10
--property key=value
|
--fail-threshold,10
--property,key=value
|
スペース文字を含む値に引用符を使用する |
--property "key=some value"
|
--property,"key=some value"
|
後方互換性のために、従来のコンマ区切り表記は引き続きサポートされていますが、非推奨であり、Qodana の将来のバージョンで削除されます。
基本構成
Docker モードで Qodana を実行するには、クラウドベースの GitLab CI/CD バージョンで、次のコードスニペットを .gitlab-ci.yml ファイルに保存してください。
ここで、inputs:image 引数は、使用したい Docker イメージを指定します。
この設定では、inputs:os 引数を使用してオペレーティングシステムを指定します。
Qodana をネイティブモードで実行するには、以下の設定スニペットを使用してください。
これらの構成にはすべて、Qodana Scan GitLab Pipeline コンポーネントが含まれており(英語)、キャッシュ、コード品質レポート生成、マージリクエスト分析、およびマージリクエストへのコメントが有効になります。これらの設定は、以下のセクションの説明と構成の章を参照して上書きできます。--image 引数は、Windows の場合は Qodana イメージを、それ以外の場合は macOS を指定します。
付属のコンポーネントは、GitLab CI/CD の他のジョブと同様に設定できる qodana ジョブを作成します。このジョブの定義済み設定は、テンプレート(英語)を使用して確認できます。
例: このコードスニペットでは、before_script を定義し、ジョブ実行ルールを変更し、環境変数を追加できます。
GitLab CI/CD のオンプレミスバージョンの場合、.gitlab-ci.yml ファイルに次の構成を保存します。
このスニペットでは、qodana-gitlab-ci は GitLab CI/CD Web サイト(英語)で説明されている GitLab CI/CD コンポーネントです。
キャッシュを構成する
デフォルトでは、Qodana では次のキーを使用してキャッシュが有効になっています。
デフォルトのキャッシュ設定を上書きする場合は、次の構成を使用します。
オペレーティングシステムを上書きする
デフォルトでは、Qodana は Linux 用に構成されています。os キーワードを使用してオペレーティングシステムをオーバーライドできます。例: Microsoft Windows の場合は、以下の構成を使用できます。
特定のブランチ
デフォルトでは、Qodana は master および main、ブランチ、リリースブランチ、マージリクエストを分析するように構成されているため、追加の構成を指定する必要はなく、基本構成を使用します。
この動作を上書きしたい場合は、次の設定を変更できます。
この構成の rules ブロックは、Qodana にどのブランチをインスペクションするかを指示します。
クイックフィックス
次の 2 つの構成方法のいずれかを使用してクイックフィックス戦略を選択します。
# Possible values: apply | cleanup fixesStrategy: apply# Possible values: --apply-fixes | --cleanup args: --apply-fixesニーズに応じて、パイプライン構成で
push-fixesプロパティを定義します。この構成を保存して、修正と元のブランチへのマージリクエストを含む新しいブランチを作成します。
push-fixes: merge-requestこの構成を保存して、元のブランチに修正をプッシュします。
push-fixes: branch
以下は、パイプラインを構成するために inputs ブロックを使用する構成例です。
Qodana レポートを公開する
Qodana Cloud を使用せずに、任意のマージリクエストでレポートを使用できるようにするには、upload-result キーワードを使用し、artifact-name キーワードを使用してアーティファクト名を指定します。例:
パイプラインを同様に構成した場合、次のようになります。
マージリクエストのパイプラインに関連付けられた Qodana レポート

特定の公開された Qodana アーティファクトに対して利用可能なアクション

品質ゲートとベースライン
inputs:args ブロックの --fail-threshold <number> 行と --baseline <path/to/qodana.sarif.json> 行を使用して、品質ゲートとベースライン機能を実行できます。
コード品質レポート
GitLab CI/CD のマージリクエスト UI を使用して、問題のあるコード行とその説明、および改善のための推奨事項を表示します。
この機能を実装するために、Qodana は、コード品質(英語)でサポートされ、gl-code-quality-report.json ファイルに含まれる JSON 形式の分析レポートを生成します。
この機能はデフォルトで true に設定されているため、追加の設定は必要ありません。必要に応じて、codequality オプションを使用してレポートへのパスを上書きできます。
Qodana ログ
GitLab CI/CD 上の Qodana からログデータを取得するには、次の構成を使用します。
この構成では、ログを生成するために .qodana/results ディレクトリを使用し、このディレクトリをアーティファクトとして公開します。
タイムアウトで失敗した Qodana ジョブからログをアップロードするには、パイプラインタイムアウトより小さい値を持つ RUNNER_SCRIPT_TIMEOUT 変数を追加します。
詳細は GitLab CI/CD Web サイト(英語)を参照してください。
構成
この表には、inputs ブロックを使用して構成できるオプションのリストが含まれています。
名前 | 説明 | デフォルト値 |
|---|---|---|
| Qodana 実行の CI ステージ |
|
| Qodana ジョブ名。同じパイプライン内で複数の Qodana ジョブを実行する順序をカスタマイズするために使用できます |
|
| 追加の Qodana CLI | - |
| 分析レポートを保存するディレクトリ(プロジェクトルートからの相対パス)。オプション。 |
|
| Qodana の結果 (SARIF、その他のアーティファクト、ログ) をアーティファクトとしてジョブにアップロードします。オプション。 |
|
| 結果のアップロードに使用する Qodana 結果アーティファクト名を指定します。オプション。 |
|
| プロジェクトルートを基準とした Qodana キャッシュを保存するディレクトリ。オプション。 |
|
| Qodana 解析には GitHub キャッシュ(英語)を使用します。(任意) |
|
| Qodana が生成したコード品質レポート(英語)を使用する |
|
| マージリクエスト内の変更されたファイルのみを分析します。オプション。 |
|
| マージリクエストに Qodana の結果概要を記載したコメントを投稿します。オプションです。 |
|
| Qodana 修正をリポジトリにプッシュします。 |
|
| クイックフィックスが適用されたときに使用されるコミットメッセージ |
|
| パイプラインの実行に使用するオペレーティングシステム。事前設定に必要です。 |
|
| Linux 専用オプション。ジョブ実行に使用されるイメージ。バージョン 2026.1 以降必須 |
|
| Windows 専用オプション。ジョブにはカスタムランナータグが使用されます |
|
| macOS 専用オプション。作業にはカスタムランナータグが使用されます |
|
関連ページ:
プロジェクトトークン
一般に利用可能な有料リンターでは、Qodana の実行中に変数を使用してプロジェクトトークンを提供する必要があります。例:qodana scan \ -e QODANA_TOKEN=
クイックスタート
現行バージョンの Qodana(2026.1)では、様々なプログラミング言語や技術を用いたソフトウェアを解析できます。また、利用可能な機能を使って、デフォルトの Qodana 設定を拡張することも可能です。例として、このセクションでは、以下を使用して Qodana の操作をすぐに開始できる方法について説明します。JetBrains IDE、コマンドラインインターフェース、GitHub アクション、Gradle プラグインとして、前提条件:Qodana Cloud でプロジェクトを設定する Qod...
プロジェクト
プロジェクトは Qodana レポートを蓄積します。各プロジェクトはプロジェクトトークンによって一意に識別されます。プロジェクトの作成:新しい組織を作成する際、Qodana Cloud は最初のプロジェクトの設定を支援するため、これらの手順は追加のプロジェクトを作成する場合にのみ関連します。チームページで、ボタンをクリックします。プロジェクトのセットアップ段階を完了します。この段階の詳細については、前提条件セクションを参照してください。プロジェクトを管理する:プロジェクトが作成された後、その...
ベースライン
ベースラインとは、特定の Git ブランチに対する特定の Qodana 分析で取得されたコードベースの問題点のスナップショットであり、ファイルに格納されています。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新規の問題、変更されていない問題、解決済みの問題を確認できます。たとえば、ブランチのベースラインを設定・更新することで、プルリクエストやマージリクエストのマージ後の変更を監視できます。必要に応じて、新しいファイルを生成し、Qodana の実行中に使用することで、ベー...
GitHub アクション
Qodana Scan GitHub アクションを使用すると、GitHub リポジトリで Qodana を実行できます。プロジェクトを準備する:Qodana クラウドこのセクションのすべての構成例では、Qodana Cloud によって生成されたプロジェクトトークンを使用します。このトークンは、有料の Qodana リンターでは必須であり、コミュニティリンターで使用する場合はオプションです。Qodana Cloud UI でプロジェクトトークンを生成する方法については、次のセクションを参照してく...