Qodana 2024.1 ヘルプ

Jenkins

Jenkins (英語) は、ソフトウェアの構築、テスト、デプロイなどのソフトウェア関連タスクを自動化する自己完結型のオープンソースサーバーです。このセクションでは、Jenkins マルチブランチパイプライン(英語)で Qodana Docker イメージを構成する方法について説明します。

プロジェクトを準備する

これらのプラグインが Jenkins インスタンスにインストールされていることを確認してください。

Docker がインストールされており、Jenkins からアクセスできることを確認してください。

該当する場合は、Docker ドキュメントの Docker を非 root ユーザーとして管理する(英語)セクションに従って、jenkins ユーザーが Docker にアクセスできることを確認してください。

Jenkins ドキュメントポータル(英語)の説明に従って、マルチブランチパイプラインプロジェクトを作成します。

プロジェクトリポジトリのルートディレクトリに、Jenkinsfile を作成します。このファイルには、このセクションで説明する Jenkins 構成スクリプトが含まれます。

基本構成

これが Jenkins パイプラインの基本構成です。

pipeline { environment { QODANA_TOKEN=credentials('qodana-token') } agent { docker { args ''' -v "${WORKSPACE}":/data/project --entrypoint="" ''' image 'jetbrains/qodana-<linter>' } } stages { stage('Qodana') { steps { sh '''qodana''' } } } }

この構成では、environment ブロックは、Qodana クラウドで生成され、qodana-token グローバル資格情報(英語)に含まれるプロジェクトトークンを呼び出すための QODANA_TOKEN 変数を定義します。プロジェクトトークンは、有料の Qodana リンターに必要ですが、コミュニティリンターで使用する場合はオプションです。Qodana Cloud でプロジェクトトークンを生成する方法については、次のセクションを参照してください。

  • オンボーディングセクションでは、Qodana クラウドを初めて使用するときに生成されたプロジェクトトークンを取得する方法について説明します。

  • プロジェクトを管理するセクションでは、既存の Qodana Cloud 組織でプロジェクトを作成する方法について説明します。

この構成では、docker エージェントを使用して Qodana Docker イメージを呼び出します。WORKSPACE 変数を使用して、args ブロックはローカルチェックアウトディレクトリを Docker イメージのプロジェクトディレクトリにマウントし、image は呼び出される Docker イメージを指定します。

stage ブロックは Qodana を呼び出します。ここでは、品質ゲートやベースライン機能など、Qodana を構成するオプションを指定することもできます。

特定のブランチを分析する

when ブロックを使用すると、プロジェクトのどのブランチを分析するかを Qodana に指示できます。例: この構成では、feature ブランチのみを分析できます。

pipeline { environment { QODANA_TOKEN=credentials('qodana-token') } agent { docker { args ''' -v "${WORKSPACE}":/data/project --entrypoint="" ''' image 'jetbrains/qodana-<linter>' } } stages { stage('Qodana') { when { branch 'feature' } steps { sh '''qodana''' } } } }

Jenkins ドキュメントのプルリクエストのサポート(英語)セクションに記載されているように、プルリクエストを分析できます。

品質ゲートとベースライン

この構成は、steps ブロックで指定された --fail-threshold <number> および --baseline <path/to/qodana.sarif.json> ラインを使用して、品質ゲートおよびベースライン機能を呼び出します。

pipeline { environment { QODANA_TOKEN=credentials('qodana-token') } agent { docker { args ''' -v "${WORKSPACE}":/data/project --entrypoint="" ''' image 'jetbrains/qodana-<linter>' } } stages { stage('Qodana') { steps { sh ''' qodana \ --fail-threshold <number> \ --baseline <path/to/qodana.sarif.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 クラウドに接続します、Qodana Cloud 組織、チーム、プロジェクトを作成する、Ultimate および Ultimate Plus リンターに必要なプロジェクトトークンを生成する、セットアップコードインスペクション、オンボーディングでは、JetBrains アカウントの情報 (ライセンスや会社など) が使用されます。以下に手...

プロジェクト

プロジェクトは、Qodana レポートを蓄積します。各プロジェクトは、プロジェクトトークンによって一意に識別されます。このトークンは、Qodana レポートのアップロードに使用されます。プロジェクトの作成:オンボーディング段階では、Qodana Cloud がすでに最初のプロジェクトの作成を支援しているため、これらの手順は追加のプロジェクトを作成する場合にのみ適用されます。チームページで、ボタンをクリックします。以下で説明するウィザードの手順に従います。Qodana Cloud からアクセスでき...

ベースライン

ベースラインは、特定の Qodana 実行時に取得され、ファイルに含まれているコードベースの問題のスナップショットです。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新しい問題、変更されていない問題、解決された問題を確認できます。この機能は、Community、Ultimate、Ultimate Plus ライセンスとその試用版で利用可能なすべてのリンターでサポートされています。使い方:ベースラインなしで Qodana を実行すると、現在の実行時に検出された問題を確認...

GitLab CI/CD

GitLab CI/CD は、さまざまな CI/CD 手法を使用するソフトウェア開発用のツールです。このセクションでは、GitLab CI/CD パイプライン内で QodanaDocker イメージを実行する方法について説明し、次のケースについて説明します。特定のブランチおよびマージリクエストのインスペクション、インスペクションレポートを Qodana クラウドに転送する、GitLab CI/CD ユーザーインターフェースでの Qodana レポートの公開、品質ゲートとベースライン機能の使用、コード品...