BPStudy#31に参加しました

BPStudy#31 テーマ:継続的インテグレーションツール「Hudson」に参加してきました。

スピーカーは、id:cactusmanさん

以下は、自分のメモがきです。

CIについて

CIのサイクル

  1. チェックアウト
  2. コンパイル
  3. UnitTest
  4. インスペクション(解析ツールを使ってチェック)
  5. パッケージ
  6. 結合テスト
  7. デプロイ
  8. システムテスト
    • このサイクルをグルグルまわす
    • 自動化は必須ではないけど、結合テストより前は自動化するのが現実的

メリット

  • 成果物の品質の保証
    • ビルドやテストがとおらないというような問題を早い段階で検知できる!
    • デグレードがおきにくくなる

その他のメリット

  • テストを書くようになる
  • 複数環境でテストができる(WindowsUnixとか)

なぜ広まらないのか

  • 導入が大変(テストが必須、SCMが必須、途中から導入は難しい、ビルドが通らない)

導入に必須と思われる事項

導入時にあるといいもの

  • BTS
  • インスペクション
  • XFD(エクストリーム・フィードバック・デバイス
    • ビルドが失敗したときに光ったり、音がなったりする

大切なこと

  • 犯人探しをしてはいけない
    • 問題を起こす人がいつも同じでも、どうすれば減らせるかという風に考えることが大切
  • 導入だけで満足してはいけない
  • エラーを放置してはいけない
    • エラーが起きても放置するようになったら使う意味が・・・

hudsonについて

  • OSSのCIツール
  • 簡単、手軽、親切
    • JavaWebStartで起動
    • java -jar hudson.war」起動
    • 好きなサーブレットコンテナにデプロイ可能
    • 設定はWebの画面
    • DBが不要
  • プラグインで機能拡張

どういう流れでおこなうのか

プラグインなど

環境構築

コマンド

java -jar hudson.war --help

プラグイン

  • gitとかVSSとか、その他いろいろSCMに対応
  • phpもphingが使えるようになるプラグインがある

感想

  • CI基本的な考え方から説明してくれてよかった!
  • CIをはじめるために、mavenとかphingとかビルドスクリプトを勉強する必要があることがわかって、勉強する気になった!
  • hudsonを導入する手順がなんとなくわかったので「難しそうだから無理っ」て思ってた気持ちがなくなった
  • hudson pluginの作り方のあたりは、作る気がまったくなかったので、ほとんど聞かないでブログ書いてました。ごめんなさい(汗)

個人的な課題

  • phingの勉強する
    • phpでphingとUnitTestを実行するような環境作る
  • hudson導入する
    • hudsonでphing呼ぶたたいて動くところまでやる


bpstudyはいつもレベルが高くて、楽しいです。
いつもありがとうございます>主催者の方々