Azure DevOpsパイプラインでの SonarQube スキャンの構成

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:5分
  • MS Azure DevOps パイプラインで SonarQube または SonarCloud スキャンを構成します。パイプライン実行のすべてのステージで SonarQube スキャンのパイプライン実行 Azure DevOps を確認し、任意のステージから DevOps チェンジベロシティまでのスキャンのリストと詳細をフェッチします。カテゴリに基づいて [スキャンの詳細] をドリルダウンします。

    始める前に

    Azure DevOps パイプラインで SonarQube スキャンを構成する前に、次の前提条件を満たしていることを確認してください。
    • 互換性のある SonarQube バージョンを使用しています。サポートされているツールのバージョンについては、「 DevOps チェンジベロシティ の統合 」を参照してください。
    • 接続して Azure DevOps ツールを構成し、既存のリポジトリ、オーケストレーションタスク、およびパイプラインを検出します。
    • SonarQube ツールレコードを作成します。詳細については、「SonarQubeとDevOps チェンジベロシティとの統合」を参照してください。
    • Visual Studio Marketplace から SonarQube 拡張機能をインストールし、ビルド定義で Azure DevOps タスクを使用してプロジェクトを分析するように分岐分析を構成します。詳細については、 SonarQube のドキュメントを参照してください。
    • 次のカスタム拡張タスクを Azure DevOps インスタンスにインストールします。
    必要なロール:
    • admin または sn_devops.admin DevOps チェンジベロシティ
    • のアドミン Azure DevOps
    • SonarQube スキャンが構成されているすべてのプロジェクトへのアクセス権を持つ SonarQube の admin ロール。

    このタスクについて

    既定では、 Azure DevOps には、ビルド パイプラインとリリース パイプラインで SonarQube スキャンを実行するための次のタスクが用意されています。
    • SonarCloud での分析の準備
    • コード分析を実行
    • 品質ゲート結果を公開
    カスタム ServiceNow 拡張タスクを追加して構成し、デフォルトのタスクに追加して構成し、ビルドパイプラインとリリースパイプラインから ServiceNow DevOps するスキャンの詳細 Azure DevOps フェッチします。フェッチされるスキャンの詳細は次のとおりです。
    • pipelineName
    • buildNumber
    • stageName
    • branchName
    • sonarProjectKey
    • sonarInstanceUrl

    手順

    1. ビルドパイプラインからスキャン分析をフェッチするように、 Azure DevOps と SonarQube の統合をセットアップして構成します。
      1. Azure DevOps コンソールで、 組織 > SonarIntegrations > パイプライン > ジョブ.
      2. [タスクを追加] アイコン ( [タスクを追加] ) をクリックし、[タスクを追加] 検索バーでServiceNow拡張機能を検索します。
      3. 次のタスクを追加します。
        • ServiceNow DevOps Sonar 登録タスクを構築します。
        • ServiceNow DevOps Sonar 登録タスクをリリースします。
      4. フォームのフィールドに入力します。
        表 : 1. ServiceNow DevOps ビルド/リリース Sonar 登録
        Field (フィールド) 説明
        Display name (表示名) キーと URL を入力すると自動入力されます。
        ServiceNow エンドポイント ツールの構成中に自動的に作成される ServiceNow インスタンスエンドポイント。このタスクには同じサービス接続を使用します。
        Sonar プロジェクトキー [SonarCloud で分析を準備 (Prepare analysis on SonarCloud)] タスクを構成するときに使用したものと同じプロジェクトキー値を入力します。
        Sonar インスタンス URL ツールの作成時に Sonar ツールへの接続に使用したのと同じ URL を入力します。
        ジョブ名 Azure DevOpsパイプラインジョブの名前。

        このフィールドは、 ServiceNow DevOps リリースソナー登録 タスクに対してのみ表示されます。

        重要:
        パイプラインジョブのタスクのリストで、[コード分析の実行] タスクの後に [ServiceNow DevOps Build Sonar Registration] または [ServiceNow DevOps Release Sonar Registration] タスクが追加されていることを確認します。
      ソナースキャン結果を DevOps アプリケーションに送信するようにビルドパイプラインを構成しました。スキャン結果はソフトウェア品質機能にマッピングされ、イベントが作成されて受信イベントテーブルで処理されると、関連するベースシステムサブフロー (FetchSonarScanId) によって処理されます。
    2. DevOps で Azure パイプラインステップを関連付けます。
    3. パイプラインを実行します。

    タスクの結果

    パイプライン実行のさまざまなステージでのスキャン結果に基づいて、パイプラインの対応するステップに結果が ServiceNow DevOpsに表示されます。通知の受信イベントが作成され、通知のタイプと機能に基づいてサブフローがトリガーされます。

    次のタスク

    • タスク実行の一部としてスキャンの詳細を表示します。ビルドまたはリリースパイプラインの実行ステップにマッピングされたタスク実行の一部であるすべてのソナースキャンの詳細を表示します。
      1. 移動先 DevOps > オーケストレーション > タスク実行 関連するタスク実行レコードをクリックします。
      2. [ソフトウェア品質サマリー] 関連リストをクリックします。
      3. 関連するスキャン ID レコードをクリックします。
      [ソフトウェア品質スキャンサマリー] と [スキャンの詳細] が表示されます。
    • 変更要求の一部としてスキャンの詳細を表示します。このビルド/リリースパイプラインに含まれていたすべてのスキャンを ソフトウェア品質結果 > ソフトウェア数量サマリー 関連付けられます
      1. 移動先 DevOps > オーケストレーション > パイプライン変更要求
      2. [ソフトウェア品質サマリー] 関連リストをクリックします。
      3. 関連するスキャン ID レコードをクリックします。
      [ソフトウェア品質スキャンサマリー] と [スキャンの詳細] が表示されます。