ソース管理、ビルド管理、CI(Continuous Integeration)サーバの間の最低限の疎通確認を、できるだけ少ない手順でやってみる。
■ 使ったもの
・ ソース管理:Subversion 1.6.6 [download]
・ ビルド管理:Maven 2.2.1 [download]
・ CI サーバ:Continuum 1.3.4 (Beta) [download]
(ベータだけど気にしない)
・ SMTP サーバ:Radish というのを見つけた [URL]
好き使えるSMTPサーバとか、なんちゃってスクリプトとかあったらそれでも可。
■ 各プロダクトの準備
コマンドプロンプトは Win XP 上の Cygwin を使用
◆ ソース管理
- Subversion が無かったらインストールしておく。
- 適当なディレクトリに SVN リポジトリを作る。ここでは c:\devel\tmp\repo とした
$ svnadmin create c:/devel/tmp/repo
◆ ビルド管理
- Maven2 が無かったら インストールしておく。
◆ SMTP サーバ
- Radish をダウンロードしたら適当なところに展開して実行。
- メニューの[設定]/[STMP/POP3サーバ設定ダイアログ]から、ドメイン名に ci_test.net を指定。
- メニューの[設定]/[ユーザ]で、ユーザ ci_tester(パスワード:no)を追加
ci_test.net
と ci_tester
は任意でも可◆ CI サーバ
- 無かったら適当にインストール
- jetty.xml中、MailSessionReference の設定を以下のように編集
<Set name="user">ci_tester</Set>
■ Continuum からビルド
- 適当なディレクトリで、プロジェクト作成
$ mvn archetype:create \
mvn package と叩けばビルドできることが確認できる。
> -DgroupId=net.yasuabe.studies.ci \
> -DartifactId=continuum-test \
> -DarchetypeArtifactId=maven-archetype-quickstart - pom.xml に以下を追記(dependency の後あたり)
<scm>
<connection>
scm:svn:file:///C:/devel/tmp/repo/continuum-test
</connection>
</scm> - Subversion にimport する
$ svn import file:///c:/devel/tmp/repo -m "initial import"
- Continuum に登録
- "Add Project"/"Maven 2.0x Project"
- "Upload POM" でpom.xml を指定して[Add]
- ユーザを追加
- "Administration"/"Users"から[Create New User]
- "User Name"=ci_tester Email Address = ci_tester@ci_test.netで[Create User]
- ロール等、適当にチェック(continuum-testのProject Administratorなど)
- Project Group Summary の MembersタブでUsersの表に表示されていることを確認
- Notifiers を追加
- "Notifiers"/[Add]
- Type=Mail でSubmit
- "Mail Recipient Address"=ci_tester@ci_test.net "Send on Failure"にチェックして[Save]
- Continuum からビルド
- "Continuum"/"Show Project Groups"
- "continuum-test"
- "Member Projects"/"continuum-test"
- [Build Now] ボタン押下
- 確認
- Builds タブに成功行が追加され
- Working Copy にソースがチェックアウトされていることを確認
■ ビルド失敗の通知確認
- AppTest.java の既存テストメソッドを編集してコミット
public void testApp() {
assertTrue(false);
} - Continuum で再び [Build Now]
- "continuum-test" プロジェクトの Builds タブで失敗行が追加されていることを確認
- Radish の MAILBOX にメールが入っていることを確認
- メールを開くと、どのテストが失敗したかなど詳細情報が載ってる
以上、CIサーバと Maven、Subversion を連携させて、失敗時にメールを送るところまでできた。
後の作業は以下のような感じだろうか。
- Continuum のメニュー上の他の設定オプションを試す。
- Continuum の他の構成を試す。デフォルトはデータベース=Derby、APサーバ=Jetty。
- 他の環境で試す(現場は Linux 多いかも)。
- Trac との連携
0 件のコメント:
コメントを投稿