カテゴリー別アーカイブ: Jenkins

Hudson/JenkinsでVisual Studioプロジェクトのビルドをする – MSBuild Plugin

Hudson/JenkinsでVisual Studioのプロジェクトをビルドしたい、そんなとき。
MSBuild Pluginを使うよ。

MSBuild Pluginの導入

「Hudsonの管理」→「プラグインの管理」→「利用可能」タブ→
Hudson MSBuild Plugin」にチェックを入れて「インストール」
インストールが完了したら、「ジョブが実行中でなければ再起動」ボタンを押してHudson/Jenkinsを再起動。

MSBuild Pluginの設定

導入ができたら、プラグインの設定をする。

「Hudsonの管理」→「システムの設定」

MSBuild Builderの項目が新たにできているので、nameとpathを指定する。
nameは、ジョブの設定時、MSBuildの選択肢として出てくるのでわかりやすい名前をつける。Path To msbuild.exeにはmsbuild.exeの場所を指定すればよい。
たいていの場合、C:\WINDOWS\Microsoft.NET\Framework\[version]\MSBuild.exe 
私の環境では以下のバージョンがあったよ。

  • v1.0.3705
  • v1.1.4322
  • v2.0.50727
  • v3.0
  • v3.5
  • v4.030319

設定例

とりあえず、最新のだけ使うので
name: v4.030319
path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
と入力して保存。必要に応じて他のバージョンも追加できる。

ジョブの設定

「ビルド手順の追加」で
Build a Visual Studio project or solution using MSBuild.
を追加

  • MsBuild Versionはプルダウンメニューから使用するMSBuildを選ぶ。上のシステム設定でnameに指定したものが一覧に出る
  • MsBuild Build Fileにはビルドしたいプロジェクトの.projか.slnのパスを指定
  • Command Line ArgumentsにはMSBuildのオプションを設定

設定例

MsBuild Version: v4.030319
MsBuild Build File: C:\hudson\jobs\ジョブ名\workspace\プロジェクト名\プロジェクト名.sln
Command Line Arguments: /t:Rebuild /p:Configuration=Release

私の場合gitプラグインでプロジェクトをHudson/Jenkinsワークスペース以下にcloneして来てるので、cloneしてきたソリューションファイルの場所を指定しているよ。
Command Line Argumentsでリリース版のみをリビルドするよう設定。/t:は/target:、/p:は/property:の省略値。/t:cleanとかを組み合わせればクリーンビルドとかもできるね。
これでVC++のプロジェクトがビルドできたよ。

MSBuildの詳しい使い方

Hudson Growl Pluginでビルド結果をGrowlへ通知

Hudsonのビルド結果をGrowlに通知するプラグインGrowl Pluginを試してみたよ。

HudsonGrowl

Hudson Growl pluginのインストール

  1. Hudsonの管理>>プラグインの管理>>利用可能タブを選択
  2. Hudson Growl pluginを探してチェックを入れる
    (利用可能タブに見つからない場合はインストール済みタブを確認してみる。)
  3. 最下部の「インストール」ボタンを押す
  4. インストールが完了したら「ジョブが実行でなければ再起動」ボタンを押してHudsonを再起動
  5. 再起動したらHudsonの管理>>プラグインの管理>>インストール済みタブでHudson Growl pluginが有効化されていることを確認

Hudson側の設定

システム設定

Hudsonの管理>システムの設定>Global Growl Settingsにパスワードを入力して保存する。ここでは仮にpasswordと入力する。
Growl側で既にパスワード設定している場合はそのパスワードを入力すること(Growl側のパスワード設定については後述)。

Global Growl Setting
「失敗したときと回復したときだけ通知」する場合は「Only Growl on Failure or Recovery?」にチェック。

プロジェクトの設定

各プロジェクトの設定でビルド後の処理に「Growl」が追加されてるのでチェックを入れ、通知するマシンのIPアドレスを入力する。
私の場合、VirtualBoxのゲストOSでhudsonを実行していて、ホストOSがMac OSX(Growlの通知先)なので、192.168.56.1と入力したよ。

Hudson Growl IP Setting


「高度な設定」を押すと「失敗したときと回復したときだけ通知」するかどうかを選べるよ。

Growl側の設定

MacのGrowl1.2.1の場合で説明するよ。

  1. Growlのアイコンをクリックして「Open Growl Preferences…」を選択するかMacの「システム環境設定」→「その他」→「Growl」を選択
  2. 「ネットワーク」を選択して、「受信される通知を聞く」にチェック、「リモートアプリケーション登録を許可」にチェック。
    サーバパスワードにパスワードpasswordを入れる。このパスワードはHudson側のシステム設定で入力したパスワードだよ。
    既にGrowl側にパスワードが設定されている人は、そのパスワードをHudson側のシステム設定で指定してね。

Growl Network Setting

通知の確認

ビルド実行してみる。初めて実行したときはキーチェーンがアクセスを許可するか聞いてくるので、「許可」あるいは「常に許可」
GrowlKeyChain

以下のようにプロジェクト名、ステータス、ビルド番号、URLが通知される。
GrowlNotify

通知スタイルを個別に設定したい場合は、Growlの設定で「アプリケーション」を選択すると「Growler」というのがリストにいると思うので、これを選んで設定を押すと編集できるよ。
Growler
重要なプロジェクトの場合他の通知に紛れて見逃さないように、目立つ通知方法にするといいかもよ。sticky notificationにするとかね。
Hudsonの失敗ビルドのRSSをSafariにブックマークしてGrowlSafari(GrowlをダウンロードするとExtraに入ってる)で通知とかやってたんだけど、こっちの方がSafariの他の通知と切り分けられるのでいいね。