2016年8月19日金曜日

TeamCity のBuild で SonarQube のソース解析を実行する(MSBuild)

概要

SonarQubeの「SonarQube Scanner for MSBuild」を、TeamCityから起動できるようにするまでの手順。
とりあえずやってみたらとりあえず出来た! というレベル。もっと良い手段もある、と、思う。。

前提

  • TeamCity の BuildAgent に「SonarQube Scanner for MSBuild」がインストール済であること。
  • SonarQube サーバが起動済であること

手順

  1. Build Agent に実行ファイルの場所を追加する(省略可能*1)
以下ファイルをメモ帳なり、任意のエディタで開く
<Build Agentのインストールフォルダ>\conf\buildAgent.properties
※<Build Agentのインストールフォルダ>は、TeamCity上で、Agentの「Agent Parameters」タブの”agent.home.dir”に記載されている
  1. 開いたファイルに、以下内容を追加
system.msBuildSonarQubeRunnerPath=<SonarQube Scanner for MSBuild を配置した場所>
※”<>”の間の部分は、適宜読み替えてください。。c:\\sonarqube\\bin とか。”/”をエスケープするのをお忘れなく

  1. Build Step に 普通にビルドを実行するBuild Step を追加する
以下のような。

  1. ビルドを実行するBuild Stepの手前に、以下のBuild Stepを追加する
実行コマンドの内容:
%system.msBuildSonarQubeRunnerPath%\MSBuild.SonarQube.Runner.exe
パラメータの内容(*2):
begin /k:"%system.teamcity.projectName%" /n:"%teamcity.project.id%" /v:"%build.number%"

  1. 後続に、以下のBuild Stepを追加する
実行コマンドの内容:
%system.msBuildSonarQubeRunnerPath%\MSBuild.SonarQube.Runner.exe
パラメータの内容:
end

  1. 全体的には、以下のような Build Configuration になる:

補足

*1 Build Step内でパラメータを使って実行ファイルのパスを指定しているので、Build Agent にパラメータを追加している。不必要だと思うのであれば、省略して、Build Stepに直接ファイルパスを記載してください
*2 Scanner for MSBuild の引数として引き渡しているTeamCityのパラメータの意味合いは以下の通り
  • system.teamcity.projectName : 現在ビルドを実行中のプロジェクトの名前。
  • teamcity.project.id : プロジェクト作成時に指定したID
  • build.number : ビルド毎に更新される番号。何も設定していない場合は「ビルドを実行した回数」が設定されるはず(Build Configuration の General Settings にて設定可能)

実行結果の確認

実行すると、SonarQube 側のページで、以下のような雰囲気で確認が可能。
(2行目が、追加された解析結果)

SonarQube は、実行結果を勝手に蓄積していくので、後々の品質評価等にも、役立つ情報が得られる。デプロイのような作業が必要ないようなプロジェクトでも、チェックインする度にソース解析が実行される状態にしておくことは、非常に有益であると思う。

以上。

0 件のコメント:

コメントを投稿