groovy and-hudson2
TRANSCRIPT
ぐるーびー�と はどそん
おく きよたか
自己紹介
•奥清隆(おくきよたか)
•株式会社クロノス
• JGGUG関西支部
•仕事:Java、Objective-C
id:kiy0taka• http://d.hatena.ne.jp/kiy0taka
• http://twitter.com/kiy0taka
• http://github.com/kiy0taka
• http://gist.github.com/kiy0taka
• http://code.google.com/u/kiy0taka333
※kiy0takaの0は数字のゼロ
ビルドに関する問題
•コミットし忘れて、偉い人に怒られる
•自分の環境では動くけど、他人の環境では動かない
•昨日はちゃんと動いてた
•ビルドのやり方がわからない
Hudson• http://hudson-ci.org/
• CI(継続的インテグレーション)ツール
•頻繁にビルドするツール
•インストール、設定が簡単
•豊富なプラグイン
インストールwget http://hudson-ci.org/latest/hudson.warjava -jar hudson.war &open http://localhost:8080/
GroovyとHudson
•スクリプトコンソール
•Hudson CLI
•G*なプラグイン
スクリプトコンソール•Hudson版 Groovy Web Console
•Web画面からGroovyスクリプトを入力してHudson上で実行できる
Hudson Terminal
•スクリプトコンソール上でOSコマンドを実行するGreasemonkeyスクリプト
• http://gist.github.com/72335
• GroovyConsole版があれば便利かも
Hudson CLI•コマンドラインインタフェース
•CUI で Hudson の管理ができる
•リモートのHudsonに対してGroovyスクリプトを実行できる
• groovysh も使える
•Hudson 使ってる人は全員JGGUGに入るべき
例) Grailsの設定
•Grails ダウンロード&インストール
•Hudson Grails Builder インストール
•Hudson 再起動
•Hudson Grails Builder 設定
Groovyで自動化
GrailsInstaller.groovy•HudsonでGrailsをビルドするための設定を自動化
• http://gist.github.com/216943
•使い方% java -jar hudson-cli.jar \
> -s http://yourserver/hudson \
> groovy GrailsInstaller.groovy
G*なプラグイン• Groovy Plugin
• Groovy Postbuild Plugin
• Grails Plugin
• Gant Plugin
• Gradle Plugin
Grailsアプリをビルド
•テストレポート
•カバレッジレポート
•静的解析結果レポート
•デプロイ
テストレポート
•ターゲット:test-app
• JUnitテスト結果の集計:
target/test-reports/TEST-*.xml
カバレッジレポート•grails install-plugin grails-coverage
• Hudson Cobertura plugin
•ターゲット:test-app -coverage -xml
• Coberturaカバレッジ・レポートの集計:
target/test-reports/cobertura/coverage.xml
静的解析レポート•grails install-plugin codenarc
• Hudson HTML Publisher plugin
•ターゲット:codenarc
• Publish HTML reports:
CodeNarcReport.html※ 残念ながら、今のところCodeNarc用の
Hudsonプラグインはありません。
デプロイ
•Grails Tomcat Pluginではなく
•Hudson Deploy Plugin
GrailsとHudson• Grailsのようなフルスタックフレームワークはビルド
も楽できる
• CI環境の構築も楽できる
• スローテスト問題(ビルドに時間がかかりすぎる)が起こったらプラグイン化してしまえば良い(?)
• 動的言語が不安なら頻繁にビルドして健康状態を保つべき
• CIについてもJavaの資産をうまく使えるのは嬉しい
まとめ
•GrailsにもHudsonにもプラグインがありすぎて困る
•Hudsonはビルドだけではなく、データのバックアップしたり、Seleniumのクラスタになったり、Groovyを実行できたり色々出来る
おまけ
Hudson GCrawler Plugin
• Google Codeにホスティングされている Grailsアプリを探してきてビルドし続ける
•Codehaus上のGrails Plugin晩を作ったら怒られた
http://gcrawler.org/
Grails Installer Plugin
•リリースされているGrailsの全バージョン(beta、RC含む)をHudsonにインストールするプラグイン
http://dl.dropbox.com/u/718715/grails-installer.hpi
Hudson Griffon Plugin
• Grails Pluginを参考に作ったプラグイン
•GriffonのビルドにはGUI環境が必要
http://dl.dropbox.com/u/718715/griffon.hpi
Hudson Assembler
•プラグインを入れるたびに再起動するのが面倒なので、プラグインインストール済みのhudson.warを作成するGriffonアプリ。
http://hudson-assembler.googlecode.com/