SonarQubeとの統合のセットアップ

このトピックでは、SonarQubeとの統合をセットアップして、コードカバレッジとコード脆弱性分析を開発サイクルに含める方法について説明します。統合により、カバレッジと脆弱性を確認できます。(他の種類の問題はまだサポートされていません。)

SonarQubeとの統合のセットアップ

SonarQubeからALM Octane中のデータを表示するには、SonarQubeにデータを送信するように設定MavenのビルドでJenkinsジョブを作成します。

  1. Sonarで、管理者認証を使用してサーバー認証トークンを作成します。このトークンをJenkinsのSonarQube構成に追加して、JenkinsがSonarにWebhookを作成し、分析が完了したときにJenkinsに通知できるようにします。

  2. アプリケーション自動化ツールプラグインを使用して、ALM OctaneとJenkinsサーバーの統合をセットアップします。詳細については、CIサーバーのセットアップを参照してください。

  3. Jenkinsシステム設定のSonarQubeサーバーセクション:

    1. 作成した認証トークンなど、SonarQubeサーバーの詳細を入力します。

    2. チェックボックスビルド環境変数としてSonarQubeサーバー設定の挿入を有効にするを選択します。

  4. ALM Octaneでカバレッジと脆弱性のデータを表示するJenkinsジョブで、次を追加します。

    1. ビルド環境セクションで、チェックボックスSonarQubeスキャナー環境の準備を選択します。

    2. ALM Octane SonarQube listenerビルドステップは、あなたのMavenコマンドの前に追加します。統合するデータのチェックボックスの一方または両方を選択します。プッシュの脆弱性およびプッシュカバレッジ

    3. ビルドステップでは、SonarQubeの目標に加えて、Jenkinsからのビルド名とジョブ名を使用して2つの環境パラメーター値をSonarQubeに挿入します:sonar.analysis.buildNumbersonar.analysis.jobName。詳細については、こちらをご覧ください。

      これにより、ALM Octaneは、SonarQubeからカバレッジ結果を取得するときにジョブを識別できます。

      例: 
      clean install $SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL
      -Dsonar.login=$SONAR_AUTH_TOKEN -Dsonar.analysis.buildNumber=${BUILD_NUMBER} 
      -Dsonar.analysis.jobName=${JOB_NAME}
  5. ALM Octaneのパイプラインをタイプsecurityとして定義します。パイプラインのタイプは、パイプラインの [詳細] タブで確認できます。

注: Jenkinsは基本認証をサポートしていません。SonarQubeをJenkinsと統合する場合は、組織のセキュリティポリシーを確認することをお勧めします。

トップに戻る

コードとしてのパイプライン

  1. パイプラインをコードとして使用している場合は、ビルドステージでMavenコマンドの前に次の手順を入力します:addALMOctaneSonarQubeListener。

  2. このステップでは、次の変数を定義します:sonarServerUrlsonarTokenpushCoverage(オプション)、pushVulnerabilities(オプション)。

  3. Mavenコマンドで、通常のJenkinsジョブと同様にsonar.analysis.buildNumbersonar.analysis.jobNameを定義します。

例: 
withSonarQubeEnv('my_sonar_instance') {
	addALMOctaneSonarQubeListener pushCoverage: true, pushVulnerabilities:true, sonarToken:env.SONAR_AUTH_TOKEN, sonarServerUrl:env.SONAR_HOST_URL
	sh(returnStatus: true, script: "mvn clean install $SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_AUTH_TOKEN -Dsonar.analysis.buildNumber=${BUILD_NUMBER} -Dsonar.analysis.jobName=${JOB_NAME}")
}

トップに戻る

参照情報: