Hudson勉強会に行ってきました

[イベント]Hudson勉強会に行ってきました

Hudson勉強会に行ってきました。名前は聞いたことがありますが、今まで使ってなかったのできっかけになればと思って。

参考:http://wiki.hudson-ci.org/pages/viewpage.action?pageId=46336352:title

Hudson初心者向けデモ

@[http://twitter.com/cactusman:title=cactusman]さん

Hudsonって何ができるの

  1. スケジューリング
  2. SCMからチェックアウト
  3. ビルドスクリプトの実行、結果のまとめ、通知

などできる!

起動・操作

  • 起動は超簡単 「java -jar hudson.war」で一発 > 導入する敷居がグッとさげられる!? ほぼGUIから操作できるのも便利!
  • Javaのパスなどを入力し、ビルドを実行するだけ
  • スケジューリングはcronと同じように設定できる > 毎分実行されるなど

Hudsonプロジェクトの現状と将来

@[http://twitter.com/kohsukekawa:title=kohsukekawa]さん

  • rpm/debもあるよ
  • インストール後の設定はGUI > 便利!

Hudsonをおすすめできる理由

  • 拡張性の高さ! = Eclipse使われているのと同じ理由
  • Java以外の多言語でも利用されてる > Python, Rubyも
  • 他の競合ツールに比べて利用者が増加し続けている

日本Hudsonユーザ会発足!

今後の展望

  • 面白い拡張ポイントの実装 > プラグインの作者が面白いように
  • プラグインも拡張ポイントを実装すべき! > 現状メッセンジャープラグインがたくさん > しかし、プラグインごとに実装はバラバラ… > メッセンジャー共通部分を作るとか!
  • 分散ユニットテストなど計算機資源を豪勢に使う
  • ビルド環境を柔軟に
  • 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)を使う! > ナバズタグでいろいろと

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勉強会が開催されるようです。「詳しくはブログで!」との事だったのでブログをチェック! 僕もチェックします!

関連記事(この記事の初版より古い記事はリンクがグレーで表示されます)

  1. 2010/12/21 [イベント] pixiv Tech Meetingに行ってきました
  2. 2010/12/11 [java-ja] [イベント] java-ja忘年会に参加しました2010
  3. 2010/08/11 [Java] [イベント] JVM勉強会に行ってきました
  4. 2010/01/23 [java-ja] [イベント] java-ja勉強会に参加しました
  5. 2016/11/30 [Sphinx] [Python] [イベント] PyConJP 2016 in TokyoでSphinxハンズオンのTAをしてきた #pyconjp
  6. 2016/01/19 [Sphinx] [イベント] PyLadiesTokyo #8でSphinxハンズオンのTAをしてきた #sphinxjp
  7. 2015/12/01 [Sphinx] [イベント] SphinxCon JP 2015 で雑用してきた #sphinxjp
  8. 2015/11/01 [Sphinx] [イベント] Sphinxワークショップ@関西で事例紹介とハンズオンTAをしてきた #sphinxjp
  9. 2015/10/13 [Sphinx] [Python] [イベント] PyConJP 2015 in TokyoでSphinxハンズオンのTAをしてきた #pyconjp
  10. 2015/09/24 [Ansible] [イベント] Ansible Meetup in Tokyo 2015.09でLTしてきました #ansiblejp
  11. 2014/10/27 [イベント] [Sphinx] SphinxCon JP 2014 で発表してきました #sphinxjp
  12. 2014/08/28 [Sphinx] [Ruby] [イベント] kawasaki.rb #015 でSphinx導入事例の発表をしてきました #kwskrb #sphinxjp
  13. 2014/07/13 [Sphinx] [Ruby] [イベント] kawasaki.rb #013 でSphinx導入事例の発表をしてきました と #011 #012 参加記録 #kwskrb #sphinxjp
  14. 2014/04/01 [Ruby] [Jekyll] [イベント] kawasaki.rb #010 で発表してきました #kwskrb
  15. 2013/04/27 [Ruby] [Chef] [イベント] BPStudy#68に参加しました #bpstudy