« 【公開】AgileTourOsaka2010講演資料 "Why Ticket Driven Development is Agile? : No Ticket, No Commit!" #agileto2010 #tidd | トップページ | フォールト・アボイダンスからフェイルセーフ、フォールト・トレランスへ »

2010/10/31

HudsonのSubversion Tagging Plugin

ビルド管理ツールHudsonのSubversion Tagging Pluginがとても使いやすいのでメモ。
CVSにも同様のプラグインがある。

【元ネタ】
Subversion Tagging Plugin - hudson - Hudson Wiki

CVS Tagging Plugin - hudson - Hudson Wiki

HudsonのSubversion Tagging Pluginの使い方は下記を想定している。

SVNでタグ付け
例:yyyyMMdd+連番3桁

Hudsonで、指定したSVNタグをチェックアウトして、ビルドモジュールを作成

リリース後、RedmineのバージョンをSVNタグでリネームする。
又は、TracのマイルストーンをSVNタグでリネームして、完了ステータスへ更新する。
又は、Mantisの修正予定・修正済みバージョンをSVNタグでリネームして、バージョンのリリースのチェックを付けてCloseする。

つまり、SVNタグでリリース用モジュールのスナップショットを取った直後に、そのタグをHudson上で指定して、タグのソースをチェックアウトしてビルドモジュールを作る。
この方法の利点は、タグ付けされたSVNリビジョンからビルドモジュールが作られるので、SVNタグがベースラインになる。まさにSVNタグがリリース予定(リリース済)バージョンと同一視できる。

更に、HudsonでリリースされたモジュールをRedmine・Trac・Mantisのバージョン(マイルストーン)に紐づければ、イテレーションとリリース予定バージョンを対応付けることができる。
これによって、XPの小規模リリースを実現できる。

更に、下記で説明されている「ファイル指紋」を使えば、より厳格にリリース管理できる。

Hudsonを使ったアジャイルな開発入門:第3回 Hudsonによるチーム間の連携|gihyo.jp … 技術評論社

ファイル指紋は、ビルドモジュールを一意に識別する文字列。
要はファイルのMD5(ハッシュ)と同じ。

ビルドモジュールをコピーして他のサーバーへアップする時に、ファイル転送が失敗したり、誤った操作で別ファイルをコピーしたりしてしまう時もあるだろう。
そんな時に、リリース用モジュールのファイル指紋と同じかどうかチェックするようにすれば、リリース作業漏れもなくなる。
上記の記事のように、下流ビルドのプロジェクトとして、作ればいいだろう。

SW開発では最近になっても、リリース管理が手作業の部分がとても多い。
単に継続的インテグレーションするだけでなく、ビルドモジュールのリリース作業そのものも自動化して、ミスがおきないような環境にすべきだ。

RedmineやTracの情報はネットに溢れているのにHudsonの情報があまりないが、Hudsonはたくさんのプラグインで機能も豊富なので、もっと研究されるべき対象だと思う。

|

« 【公開】AgileTourOsaka2010講演資料 "Why Ticket Driven Development is Agile? : No Ticket, No Commit!" #agileto2010 #tidd | トップページ | フォールト・アボイダンスからフェイルセーフ、フォールト・トレランスへ »

Agile」カテゴリの記事

Git・構成管理」カテゴリの記事

Redmine」カテゴリの記事

ソフトウェア工学」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/49479/49898952

この記事へのトラックバック一覧です: HudsonのSubversion Tagging Plugin:

« 【公開】AgileTourOsaka2010講演資料 "Why Ticket Driven Development is Agile? : No Ticket, No Commit!" #agileto2010 #tidd | トップページ | フォールト・アボイダンスからフェイルセーフ、フォールト・トレランスへ »