2018年以降の記事はGitHub Pagesに移行しました

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

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

参考:Hudson勉強会 - 日本語 - Hudson Wiki

Hudson初心者向けデモ

@cactusmanさん

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

などできる!

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

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

@kohsukekawaさん

  • rpm/debもあるよ
  • インストール後の設定はGUI > 便利!
Hudsonをおすすめできる理由
  • 拡張性の高さ! = Eclipse使われているのと同じ理由
  • Java以外の多言語でも利用されてる > Python, Ruby
  • 他の競合ツールに比べて利用者が増加し続けている
日本Hudsonユーザ会発足!
今後の展望
  • 面白い拡張ポイントの実装 > プラグインの作者が面白いように
  • プラグインも拡張ポイントを実装すべき! > 現状メッセンジャープラグインがたくさん > しかし、プラグインごとに実装はバラバラ… > メッセンジャー共通部分を作るとか!
  • 分散ユニットテストなど計算機資源を豪勢に使う
  • ビルド環境を柔軟に
  • JRuby, Jythonなどでプラグイン開発ができるように

などなど……

Hudson活用事例

@magnet88jpさん

どのようにHudsonを活用しているか。実運用からのお話。

リリースが月に一度!
  • 自動化テストの効率化がマスト!
テストケースの構成
実運用で…
  • ダッシュボード機能 > 失敗したジョブだけ表示、自分のジョブだけ表示など
  • 繰り返しテストしやすいジョブ構成
  • Hudsonのおかけでかかる時間が18時間から30分くらいに

Ruby on Rails on Hudsonの活用事例

@kirika_k2さん

Ruby on RailsでHudson
  • デイリービルドによる日々の成果物チェック > Railsでは実行環境によって動かなくなったりする
  • テスト時間を省力化できる
  • テストコードを書くモチベーションが上がる
  • HudsonでRailsアプリをRPMに変換してRPMのインストールでデプロイ!
コンセプト
  • 同じ環境が作れる
  • 動作確認ができる
  • 人手を減らせる
実運用で…
  • 古いビルドの破棄
  • ソースコード管理システムはSubversion
  • ビルドトリガ > 毎日5時
  • Version NumberPlugin > rpmに日付を入れることができる > モジュール管理に
注意点
  • マシンスペック重要!
  • トラブルが発生したときはSSHを使うことが多い
Hudsonを入れると色々捗る!

Redmine + Hudson の連携について

@haru_iidaさん

開発ツール三種の神器

BTSとCIサーバがつながりが疎なのでそこを強化する!

Redmine > Hudson
  • Redmine上にHudsonのポータルを表示
  • チケットとビルドを関連付け
Hudson > Redmine
  • プラグインあるよ!
  • 失敗時にHudsonが発行するメールでRedmineにチケット登録ができる!
プラグインつくろう!

エルシャダイで学ぶ、大丈夫な「ビルド通知」

@ikikkoさん

  • 笑いすぎてメモ取るのほとんど忘れたw
  • 一番いいビルド通知を頼む > XFD(eXtreamFeedbackDevice)を使う! > ナバズタグでいろいろと

Hudsonを用いて適当に?テストする方法の紹介

@wyukawaさん

メンテナンス大変… > なんで?
  • テストの粒度が細かい
  • 失敗時の切り分けに時間がかかる
適当なテスト(スモークテスト)
  • assertなし
  • 適当なので仕様変更に強い
  • そのレベルで失敗したら明らかにバグ
  • ただし、古いDBを使っていると成功してしまう > 継続的データベースインテグレーションを行う!

スモークテストの語源は、何かマシンをテストするときにスイッチオン > 煙モクモク > もうその時点でそれ以降のテストしてる場合じゃないでしょ? って事らしい。

とりあえず、適当なテストだけでも自動化してみては?

モテるHudsonエンジニア

@kiy0takaさん

どうすればHudsonでモテるか
  • GUIではなくCUI
    • TerminalPlugin作りました
    • killで自殺するデモ
  • 説明欄にjavascriptも書けるので……合コン

日本語化のススメ

@itouakihiroさん

プラグインの翻訳
  • 現在374個あるプラグインのうち、日本語化されているのはたったの34個…
  • みんなで翻訳しよう! 翻訳したらモテる!

最後に、なぜ「Hudson」なの?

  • Hudsonには今まで人間がやった事をやってもらう > チームの仲間と思っている > それなら他人を助ける人の名前がいいな > 執事(Hudson)からとろう!

というわけで

第一回目という事でかなり敷居が低く参加しやすい割に、なかなか濃い2時間でした。会場を提供してくださった法政大学さん。川口さん、cactusmanさん、発表者の皆さん、受付や案内をして下さった皆さんにありがとうございました!! 

そして、Hudson使ってみたくなったので、これアップしたらHudson入れてみます!

Hudson関係ないけど

懇親会で id:t_yano さんにお会いしました。来月念願のアイスソード第3回Wicket勉強会が開催されるようです。「詳しくはブログで!」との事だったのでブログをチェック! 僕もチェックします!