kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TFS2015 Update3でSonarQube連携ができない場合の対処

TFSおよび、VSTSでビルド時にSonarQubeを呼び出すことにより、C#コードの静的解析及び、品質情報の管理を行うことができます。

Microsoft Azure - SonarQube と TFS による技術的負債の管理

SonarQube™ » Announcing SonarQube integration with MSBuild and Team Build

最初はうまく動いていたのですが、Update3のころからうまく動かなくなっていました。原因はConnectに報告するときに調べていたのですが、その通りだよということでした。

SonarQube Tasks Failed in non-english OS | Microsoft Connect

例によって、ビルドタスクのエンコーディングがANSIで、- がコードページISO-8859-1の文字だったおかげで、英語OS以外では動かないということです。

Invoke-BatchScript $bootstrapperPath -Arguments $arguments

根本対処はTFS 2015 Update4かTFS15(Preview)になるとのことなので、以下の回避策を使用します。

  • 各エージェントのtasks\SonarQubePreBuild\1.0.35フォルダにあるSonarQubePreBuild.ps1 をUTF-8に変更して、上記のように編集する。
  • クロスプラットフォーム用ビルドエージェントtfs toolを使って、1.0.36のビルドタスクをアップロードする

簡単なのは前者ですね。ビルドタスクにはそもそもこういう英語OS以外ではうまく動かないってのがたまに出てくるので、注意が必要です。