Posts Tagged ‘CI’

Hudson 1.273を試してみた

1月 14th, 2009

Hudsonコミッタの id:ssogabeさんに言及されてたのでHudson 1.273を試してみました。

前に書いた不満点に

  • マスタにラベルが割り振れない
  • Windows 64bitでサービス登録できない

の2点がありましたが、2点とも今回のリリースでなおっているとchangelogに記載がありました。

マスタにラベルを振る機能は自分が望んでいた通りのものでした。WindowsとLinuxを混在させた環境を作るためにマスタで直接実行するのをさけ、あえてslaveとして登録させていましたが、この設定は早速削除しました。

もう一点の64bit Windowsでのサービス登録はやっぱりうまく行きませんでした。エラーのスタックトレースはこんな感じでした。

java.io.FileNotFoundException:

http://example.jp:8080/jnlpJars/remoting.jar

at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source)

HudsonのURLが

http://hudson.example.jp:8080

ではなく

http://example.jp:8080/hudson/

なので、どうも要求しているリソースのURLがあってない気がします。これも登録済みのバグなのかな?

2009年1月21日追記
Hudson 1.277でなおったようです。無事に64bit Windowsでもサービス登録できました。
VistaだとUACが悪さをして登録できないようですが、一時的にUACを切ればいけます。

HudsonのWindows/Linux混在テスト環境できたよー♪

11月 6th, 2008

ということで、業務の空き時間をちょこちょこ使うことでついにWindows/Linuxの混在ビルド環境ができました。

環境を書いておくと

ホストOS:CentOS 5.2
ゲストOS(VMWare Server): Windows Vista / Ubuntu 8.10

で、HudsonをホストOSに入れTomcatで運用。
WindowsをJNLPで、Ubuntuをsshでslave.jarを呼び出す形でSlaveに追加し、ホストOSも同時実行するインスタンス数はHudsonの設定で0にし、別途Slaveとして追加しています。つまりMaster1台+ Slave3台です。

前はLinuxのSlave追加に悩んでいましたが、理屈が分かってからはWindowsの方が設定に悩みました。
以下Windowsの設定で悩んだことです。

1. WindowsでVisualStudioを使ってビルドするときはSlaveのサービスを起動するユーザをHudsonを動かすユーザにする必要がある。
そうじゃないとビルド時にオブジェクトが一致しないとか言うエラーメッセージが出てビルドができない。
discypusさんで解決情報を見つけたはずなんだけど検索しても見つけた情報が見つからなくなってる orz

2. JNLPでWindowsをSlaveに追加しHudsonをサービスとして起動するとき、Slaveの名称に半角スペースを含んでいるとサービスが起動しない。

3. 自分の環境だとなぜかWindowsのSlaveが一定時間経つとHudsonとの接続がきれ、サービスが勝手に終了してしまった。原因は分からないがWindowsのサービス設定で自動的に再起動するように設定したら大丈夫そう。

まだまだ改善点はありますが、大分ノウハウもたまってきました。