GitLab CI/CD
GitLab CI/CD(英語) は、さまざまな CI/CD 手法を使用するソフトウェア開発用のツールです。このセクションでは、GitLab CI/CD パイプライン(英語)内で Qodana Docker イメージを実行する方法について説明し、次のケースについて説明します。
特定のブランチおよびマージリクエストのインスペクション
インスペクションレポートを Qodana クラウドに転送する
GitLab CI/CD ユーザーインターフェースでの Qodana レポートの公開
コード品質レポートの生成
プロジェクトを準備する
プロジェクトリポジトリが GitLab CI/CD からアクセスできることを確認してください。
プロジェクトのルートディレクトリに、.gitlab-ci.yml
ファイルを保存します。このファイルには、GitLab CI/CD で使用されるパイプライン構成が含まれます。
基本構成
これが基本的なパイプライン構成です。
この構成では、 image:name
(英語) キーワードにより、選択した Qodana Docker イメージがプルされます。
cache
(英語) キーワードは、Qodana キャッシュを保存するように GitLab キャッシュを構成するため、以降の実行が高速になります。
script
(英語) キーワードは、qodana
コマンドを実行し、シェルコマンドセクションで説明されている Qodana 構成オプションを列挙します。
variables
キーワードは、Qodana クラウドで生成されたプロジェクトトークンを参照する QODANA_TOKEN
変数(英語)を定義します。このトークンは、有料の Qodana リンターに必要ですが、コミュニティリンターで使用する場合はオプションです。
プロジェクトトークンを生成する方法については、次のセクションを参照してください。
オンボーディングセクションでは、Qodana クラウドを初めて使用するときに生成されたプロジェクトトークンを取得する方法について説明します。
プロジェクトを管理するセクションでは、既存の Qodana Cloud 組織でプロジェクトを作成する方法について説明します。
特定のブランチをインスペクションする
only
(英語) キーワードを使用すると、Qodana にどのブランチをインスペクションするかを指示できます。main
ブランチおよび受信マージリクエストのみをインスペクションするには、次の構成を使用できます。
Qodana レポートを公開する
Qodana クラウドを使用せずに、特定のマージリクエストでレポートを使用できるようにするには、artifacts
expose_as
(英語) キーワードを使用して、アーティファクトへのパスを変更します。
同様の方法でパイプラインを構成したと仮定すると、次のようになります。
マージリクエストのパイプラインに関連付けられた Qodana レポート
特定の公開された Qodana アーティファクトに対して利用可能なアクション
品質ゲートとベースライン
script
ブロックの --fail-threshold <number>
および --baseline <path/to/qodana.sarif.json>
ラインを使用して、品質ゲートおよびベースライン機能を呼び出すことができます。
コード品質レポートを生成する
Qodana のバージョン 2024.1 以降では、GitLab CI/CD のマージリクエスト UI を使用して、問題のある特定のコード行とその説明、改善の推奨事項を表示できます。
この機能を実装するために、Qodana は、コード品質(英語)でサポートされ、gl-code-quality-report.json
ファイルに含まれる JSON 形式のインスペクションレポートを生成します。これを構成するには、GitLab CI/CD 構成の artifacts
ブロックに codequality
キーワードを追加し、gl-code-quality-report.json
ファイルへのパスを指定します。例:
関連ページ:
Qodana Docker イメージ
基本的に、Docker イメージの名前はリンターの名前と似ています。Qodana リンターには次の Docker イメージが提供されています。JVM 用 Qodana、JVM の Qodana コミュニティ、Android のための Qodana コミュニティ、PHP 用の Qodana、Python 用 Qodana、Python のための Qodana コミュニティ、JS 用 Qodana、Go 用 Qodana、.NET 用 Qodana、.NET の Qodana コミュニティ、...
Qodana クラウド
Qodana を複数のプロジェクトまたはリポジトリで実行する場合、特にコードベースが複数のサーバーと仮想プライベートネットワークに分散されていて、各チームが独立して作業している場合は、すべての分析レポートを 1 か所に読み込んで集約すると便利です。このような場合、すべての Qodana インスタンスからレポート情報を収集して表示するための集中型ソリューションが役立ちます。Qodana クラウドは、さまざまな Qodana レポートを蓄積し、プロジェクトの進捗状況を一元的に追跡するのに役立つクラウ...
ベースライン
ベースラインは、特定の Qodana 実行時に取得され、ファイルに含まれているコードベースの問題のスナップショットです。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新しい問題、変更されていない問題、解決された問題を確認できます。この機能は、Community、Ultimate、Ultimate Plus ライセンスとその試用版で利用可能なすべてのリンターでサポートされています。使い方:ベースラインなしで Qodana を実行すると、現在の実行時に検出された問題を確認...
オンボーディング
オンボーディングは、プロジェクトで作業するために Qodana を準備するための重要なステップであり、次のことが可能になります。プロジェクトリポジトリを Qodana クラウドに接続します、Qodana Cloud 組織、チーム、プロジェクトを作成する、Ultimate および Ultimate Plus リンターに必要なプロジェクトトークンを生成する、セットアップコードインスペクション、オンボーディングでは、JetBrains アカウントの情報 (ライセンスや会社など) が使用されます。以下に手...
プロジェクト
プロジェクトは、Qodana レポートを蓄積します。各プロジェクトは、プロジェクトトークンによって一意に識別されます。このトークンは、Qodana レポートのアップロードに使用されます。プロジェクトの作成:オンボーディング段階では、Qodana Cloud がすでに最初のプロジェクトの作成を支援しているため、これらの手順は追加のプロジェクトを作成する場合にのみ適用されます。チームページで、ボタンをクリックします。以下で説明するウィザードの手順に従います。Qodana Cloud からアクセスでき...