[イベント]Hudson勉強会に行ってきました
Hudson勉強会に行ってきました。名前は聞いたことがありますが、今まで使ってなかったのできっかけになればと思って。
参考:http://wiki.hudson-ci.org/pages/viewpage.action?pageId=46336352:title
Hudson初心者向けデモ
@[http://twitter.com/cactusman:title=cactusman]さん
Hudsonって何ができるの
- スケジューリング
- SCMからチェックアウト
- ビルドスクリプトの実行、結果のまとめ、通知
などできる!
起動・操作
- 起動は超簡単 「java -jar hudson.war」で一発 > 導入する敷居がグッとさげられる!? ほぼGUIから操作できるのも便利!
- Javaのパスなどを入力し、ビルドを実行するだけ
- スケジューリングはcronと同じように設定できる > 毎分実行されるなど
Hudsonプロジェクトの現状と将来
@[http://twitter.com/kohsukekawa:title=kohsukekawa]さん
- rpm/debもあるよ
- インストール後の設定はGUI > 便利!
Hudsonをおすすめできる理由
- 拡張性の高さ! = Eclipse使われているのと同じ理由
- Java以外の多言語でも利用されてる > Python, Rubyも
- 他の競合ツールに比べて利用者が増加し続けている
日本Hudsonユーザ会発足!
- http://build-shokunin.org
- メーリスもあるよ
- 定期的に勉強会するよ
今後の展望
- 面白い拡張ポイントの実装 > プラグインの作者が面白いように
- プラグインも拡張ポイントを実装すべき! > 現状メッセンジャープラグインがたくさん > しかし、プラグインごとに実装はバラバラ… > メッセンジャー共通部分を作るとか!
- 分散ユニットテストなど計算機資源を豪勢に使う
- ビルド環境を柔軟に
- JRuby, Jythonなどでプラグイン開発ができるように
などなど……
Hudson活用事例
@[http://twitter.com/magnet88jp:title=magnet88jp]さん
どのようにHudsonを活用しているか。実運用からのお話。
リリースが月に一度!
- 自動化テストの効率化がマスト!
テストケースの構成
- Selenium IDE
- Selenium AES(あまり使っていない)
- JMeter
- Subversion
- Hudson
実運用で…
- ダッシュボード機能 > 失敗したジョブだけ表示、自分のジョブだけ表示など
- 繰り返しテストしやすいジョブ構成
- Hudsonのおかけでかかる時間が18時間から30分くらいに
Ruby on Rails on Hudsonの活用事例
@[http://twitter.com/kirika_k2:title=kirika_k2]さん
Ruby on RailsでHudson
- デイリービルドによる日々の成果物チェック > Railsでは実行環境によって動かなくなったりする
- テスト時間を省力化できる
- テストコードを書くモチベーションが上がる
- HudsonでRailsアプリをRPMに変換してRPMのインストールでデプロイ!
コンセプト
- 同じ環境が作れる
- 動作確認ができる
- 人手を減らせる
実運用で…
- 古いビルドの破棄
- ソースコード管理システムはSubversion
- ビルドトリガ > 毎日5時
- Version NumberPlugin > rpmに日付を入れることができる > モジュール管理に
注意点
- マシンスペック重要!
- トラブルが発生したときはSSHを使うことが多い
Hudsonを入れると色々捗る!
Redmine + Hudson の連携について
@[http://twitter.com/haru_iida:title=haru_iida]さん
開発ツール三種の神器
- BTS
- リポジトリ
- CIサーバ
BTSとCIサーバがつながりが疎なのでそこを強化する!
Redmine > Hudson
- Redmine上にHudsonのポータルを表示
- チケットとビルドを関連付け
Hudson > Redmine
- プラグインあるよ!
- 失敗時にHudsonが発行するメールでRedmineにチケット登録ができる!
プラグインつくろう!
エルシャダイで学ぶ、大丈夫な「ビルド通知」
@[http://twitter.com/ikikko:title=ikikko]さん
- 笑いすぎてメモ取るのほとんど忘れたw
- 一番いいビルド通知を頼む > XFD(eXtreamFeedbackDevice)を使う! > ナバズタグでいろいろと
- ナバズタグ参考:http://robot.watch.impress.co.jp/docs/news/20090427_164003.html
- 会場ではナバズタグが動かなかったので残念…
Hudsonを用いて適当に?テストする方法の紹介
@[http://twitter.com/wyukawa:title=wyukawa]さん
メンテナンス大変… > なんで?
- テストの粒度が細かい
- 失敗時の切り分けに時間がかかる
適当なテスト(スモークテスト)
- assertなし
- 適当なので仕様変更に強い
- そのレベルで失敗したら明らかにバグ
- ただし、古いDBを使っていると成功してしまう > 継続的データベースインテグレーションを行う!
スモークテストの語源は、何かマシンをテストするときにスイッチオン > 煙モクモク > もうその時点でそれ以降のテストしてる場合じゃないでしょ? って事らしい。
とりあえず、適当なテストだけでも自動化してみては?
モテるHudsonエンジニア
@[http://twitter.com/kiy0taka:title=kiy0taka]さん
どうすればHudsonでモテるか
- GUIではなくCUI
- TerminalPlugin作りました
- killで自殺するデモ
- 説明欄にjavascriptも書けるので……合コン
日本語化のススメ
@[http://twitter.com/itouakihiro:title=itouakihiro]さん
プラグインの翻訳
- 現在374個あるプラグインのうち、日本語化されているのはたったの34個…
- みんなで翻訳しよう! 翻訳したらモテる!
最後に、なぜ「Hudson」なの?
- Hudsonには今まで人間がやった事をやってもらう > チームの仲間と思っている > それなら他人を助ける人の名前がいいな > 執事(Hudson)からとろう!
というわけで
第一回目という事でかなり敷居が低く参加しやすい割に、なかなか濃い2時間でした。会場を提供してくださった法政大学さん。川口さん、cactusmanさん、発表者の皆さん、受付や案内をして下さった皆さんにありがとうございました!!
そして、Hudson使ってみたくなったので、これアップしたらHudson入れてみます!
Hudson関係ないけど
懇親会で id:t_yano さんにお会いしました。来月念願のアイスソード第3回Wicket勉強会が開催されるようです。「詳しくはブログで!」との事だったのでブログをチェック! 僕もチェックします!