<< 2月 2009 | Home | 4月 2009 >>

Hudson on JBoss on Mac OSX - job の設定

Hudson on JBoss on Mac OSX - インストール - 侍ズム
Hudson on JBoss on Mac OSX - job の設定 - 侍ズム

Job とは Hudson のプロジェクト単位のことみたいです。
プロジェクト毎に Job を作っておき、どういったトリガでビルドが行われるかを事前に設定しておきます。
Job の作成は [トップ > New Job] から行えます。

1. Job の種類
New Job を選ぶと4種類のジョブが選択できます。Twitter4J は mavenize されたプロジェクトなので Build a maven2 project を選択します。



2. SCM
SCM(ソースコードマネージメント)では Subversion のリポジトリの設定を行います。
わかりやすいソースコードへのリンクがつくよう、fisheye の設定も行いました。


3. ビルドトリガ
何を契機にビルドが行われるかを設定します。
定期的に、SCMをポーリングして変更があったら、外部からの GET リクエストから、等の設定が行えます。
今回は "Trigger builds remotely" を設定しました。


ここで設定したトークンを含めた URL を Subversion の post-commit フックで叩いてあげれば良いようです。
Subversion のリポジトリの hooks ディレクトリに以下のようなスクリプトを置いておきました。

$ pwd 
/Users/yusukey/repos/hooks
$ cat post-commit
wget http://yusuke.homeip.net/hudson/job/Twitter4J/build?token={トークン}


4. ビルドさせてみる
本当はリポジトリへのチェックインを契機にビルドしてもらうべきですが、確認のために手動で上記の URL を叩いてみました。
すると、なんだか失敗しています。
コンソール出力を確認してみると、
Failed to create /var/root/.m2
See https://hudson.dev.java.net/cannot-create-.m2.html

とあります。
エラーメッセージが親切ですね、https://hudson.dev.java.net/cannot-create-.m2.html を見てみると、メッセージの通り .m2 ディレクトリが作成できなかった。作ってあげてねとあります。
JBoss は yusukey ユーザさんで起動しているのにどうして /var/root/.m2 に Maven のローカルリポジトリを作ろうとしたのでしょう・・。
[Hudson > System Information > http://yusuke.homeip.net/hudson/systemInfo] からシステムプロパティを確認して /var/root が含まれるプロパティを探してみました。
すると user.home が /var/root になっていました。なるほど、じゃぁ user.home を明示的に指定してあげれば良さそうですね。
#
# Specify options to pass to the Java VM.
#
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Duser.home=/Users/yusukey -DHUDSON_HOME=/Users/yusukey/.hudson -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -XX:MaxTenuringThreshold=32 -XX:SurvivorRatio=8 -XX:NewSize=100m -XX:MaxNewSize=100m -Xms400m -Xmx400m -server -Djava.awt.headless=true -XX:PermSize=40m -XX:MaxPermSize=128m"


再度挑戦してみたら、今度はプラグインのダウンロードに失敗したとのこと。
[WARNING] repository metadata for: 'artifact org.apache.maven.plugins:maven-resources-plugin' could not be retrieved from repository: central due to an error: Specified destination directory cannot be created: /var/root/.m2/repository/org/apache/maven/plugins/maven-resources-plugin

あれれ?まだ /var/root/.m2 を見てるぞ・・。再度 [Hudson > System Information > http://yusuke.homeip.net/hudson/systemInfo] を見たら HOME 環境変数が /var/root になっていました。
run.conf に
export HOME=/Users/yusukey

と書き加えて3度目の正直。

今度はうまくビルドが走ったようです。

しかしまた別のエラー(FATAL: Bounds exceeds available space)が出ました。これは Mac OSX 上で発生する既知の問題で、現在対応中の様です。
hudson: Issue 3164 OS X builds on 1.285 always fail with a ProcessTreeKiller error

ちなみにこの問題は手元の作業用の MacBook Pro(Core 2 Duo)/Leopardでは発生しませんでした。Hudson を運用しようとしているサーバは iBook G4(G4)/Leopard です。

Hudson on JBoss on Mac OSX - インストール - 侍ズム

タグ :
このエントリーをはてなブックマークに追加   

Hudson on JBoss on Mac OSX - 基本設定

Hudson の基本的な設定は[トップ > Manage Hudson > Configure System] から行えます。

1. セキュリティ設定
Hudson は任意のプロセスの起動を含む、かなり好き放題のことができてしまうのでデフォルト設定のままでインターネットに公開するのは危険です。セキュリティの設定方法は以下のページに詳しく書いてあります。
Standard Security Setup - hudson - Hudson Wiki

以下のように匿名ユーザは読み込みのみ行えるようにし、yusuke というユーザが全権を握るよう設定しました。


2. Maven の設定
Twitter4J は Maven を使ったプロジェクトなので、Hudson でビルドさせるには Maven のインストールディレクトリを教えてあげる必要があります。
Mac OSX には以下の場所に Maven がデフォルトでインストールされています。

$ whereis mvn
/usr/bin/mvn
$ ls -la /usr/bin/mvn
lrwxr-xr-x 1 root wheel 24 9 25 2008 /usr/bin/mvn -> /usr/share/maven/bin/mvn


Hudson での設定は以下のようになります。


3. メール の設定
ビルド完了などの通知メールをどの smtp サーバを使うか、などの設定を行います。
以下のように設定しました。


タグ :
このエントリーをはてなブックマークに追加   

Hudson on JBoss on Mac OSX - インストール

最近 Twitter4J のバグ報告や機能改善のパッチなどがちょくちょく寄せられてくるようになってきました。
そこで、新機能やバグ修正をいくつかまとめたバージョンを Maven Central Repository に登録するのとは別に Hudson で継続ビルドを行うことにしました。

Hudson は Sun の川口耕介さんという方がプロジェクトリードをしているオープンソースの継続ビルドツールで、Apache や JBoss など多くのソフトウェアプロジェクトで使われています。
詳しくは以下のサイトで解説されています。
Hudsonを使ったアジャイルな開発入門:第1回 Hudsonの導入|gihyo.jp … 技術評論社

本家サイトはこちら:
hudson: an extensible continuous integration engine

人気のバグトラッキングツールである Jira を開発している Atlassian でもBambooという継続ビルドツールをリリースしていますが、Hudson は Jira と組み合わせて使われることも多いようです。

Mac OSX で運用している自宅サーバの環境にインストールしたのでメモを取っておきます。

1. hudson.war をダウンロード
Hudson 自体ももちろん Hudson でビルドが行われており、細かいバグ修正、機能追加が行われる度に頻繁に新しいバージョンがリリースされています。
現時点で最新、3/20リリースの 1.293 をダウンロードしました。
hudson: Documents & files: releases

2. hudson.war を展開、jboss-web.xml の追加
通常この手順は不要です。ウチの環境では仮想ホストを設定しているので設定します。
- hudson.war/WEB-INF/jboss-web.xml

<jboss-web>
<context-root>/hudson</context-root>
<virtual-host>yusuke.homeip.net</virtual-host>
</jboss-web>


3. hudson のデプロイ
mv hudson.war server/default/deploy/


4. hudson にアクセス
hudson は web.xml ではなく、.hudson/ というディレクトリに全ての設定を格納するようです。しかも初めてアクセスすると自動的に設定画面が出てくるという親切設計。
なので、デプロイしたら http://host:port/hudson/ でにアクセスするだけ。
今回はいきなりエラー画面になってしまいました。


エラーメッセージは以下の通り。
Unable to create the home directory '/var/root/.hudson'. This is most likely a permission problem.

To change the home directory, use HUDSON_HOME environment variable or set the HUDSON_HOME system property. See Container-specific documentation for more details of how to do this.


/var/root/ ディレクトリに設定を格納しようとしたところ、権限がなくて失敗したようです。root ユーザで実行しているわけではないのですが、ハテ。
root ユーザから sudo -u yusukey ./run.sh といった形で一般ユーザで実行していることに関係しているかもしれません。

エラーメッセージは非常に明快で親切ですね。HUDSON_HOME 環境変数、またはシステムプロパティを設定すれば良いようです。
デフォルトの設定格納ディレクトリを決定する部分のロジックを見てみたいところですが、今回はひとまず明示的に設定することで対応することにします。

5. run.conf の編集
JBoss の run.conf を編集して HUDSON_HOMEシステムプロパティを設定、JBossの再起動を行いました。
#
# Specify options to pass to the Java VM.
#
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-DHUDSON_HOME=/Users/yusukey/.hudson -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -XX:MaxTenuringThreshold=32 -XX:SurvivorRatio=8 -XX:NewSize=100m -XX:MaxNewSize=100m -Xms400m -Xmx400m -server -Djava.awt.headless=true -XX:PermSize=40m -XX:MaxPermSize=128m"
# JAVA_OPTS=" -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -XX:NewSize=150m -XX:MaxNewSize=150m -Xms600m -Xmx600m -server -Djava.awt.headless=true -XX:MaxPermSize=250m -XX:PermSize=40m -XX:MaxPermSize=128m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
fi


6. ようやくHudson を起動
HDSON_HOME を設定して JBoss を起動すると、以下のような画面が見られます。


次は設定。
Hudson on JBoss on Mac OSX - job の設定 - 侍ズム

タグ :
このエントリーをはてなブックマークに追加   

肩こり対策 - レンジでゆたぽん

鍼灸院で肩こり対策として言われたのが「肩を冷やさないこと」。
よく言われますが冷えると血行が悪くなり、疲労物質も溜まりやすくなり肩が凝ります。

逆に血管を広げて血行を良くした方が体は温まると思いますが、なんででしょう。熱を奪われないため?

で、薬局で発見したのが「レンジでゆたぽん」。レンジでチンするとホカホカになり、肩にかけたり寝るとき足元に置いたりできる便利グッズです。



じんわりとほどよく肩を温めてくれるし、再利用できるしでなかなか良い買い物でした。

ひとつ残念なのはカバーがピンク色なこと。肩にかけられるバージョンはU字型をしておりその姿はそう、便座カバーそっくりです!

「何で便座カバー首からかけてるの?」、「また便器かぶってるの?」(便器じゃないでしょ、せめて便座でしょ!・・・)などと会社でいじられ放題です。


まぁ、色と形はビミョーではありますがオススメ商品です。

ゆたぽんをAmazonで購入:


ゆたぽんを楽天で購入:


このエントリーをはてなブックマークに追加   

鍼灸院へGo!

肩こり改善のため、最近鍼灸院へ行っています。
鍼は最初怖かったけれども思ったほどチクチク痛くはなく、体の力を抜いてくれるようでなんだか良い感じです。

鍼よりも気に入っているのが吸玉(すいだま)。カッピングともいうやつ。鍼と一緒に施術してもらっています。
カッピングは中国の民間療法で、カップの中の気圧を低くして吸盤状に背中とかにくっつけるものです。
溜まっている血を強制的に吸い出して、血行を促すんだとか。
血行の悪いところは赤黒くなって内出血します。ひどいところはびっくりするくらい黒くなりますが、1週間弱で消えます。
私の場合ちょうど凝っている肩と腰の辺りが黒くなりました。

でも、面白いことに次回同じ場所をやるとほとんど赤黒くならないんですね。きっと毛細血管が破裂、再生して太く、強くなっているんじゃないでしょうか。

カッピング後の背中

施術する度に赤みが薄くなってくるので血行が改善されてくるのが目に見えるようでとっても気持ち良いです。

このエントリーをはてなブックマークに追加   

雪・スノー・スキー

今年は3回スキー・スノボに行きました。

毎回2日滑って1日はスキーボード(ストックなしで滑る短いやつ)、もう1日はスノーボードというパターン。

スノーボードは過去に延べ3日くらい滑ったことがあったので、今年で恐らく延べ6日になりました。ヘナチョコヘロヘロスノーボーダーです。


富士見パノラマスキー場にて


富士見パノラマスキー場にて、その2

スキーボードのバインディングは開放機能なしの簡易型が主流でしたが、いつからか解放機能付きのも出てきたみたいですね。エイヤと今年新調してしまいました。

エアトリックを決める人には開放機能は邪魔なのかもしれませんが、マッタリと滑る自分にはやはり安全と安心感が重要です。
いい買い物をしました。

来年も滑れるかな?

楽天でスキーボードを探す:
【SPOPIAセール】09 ELANEXPO TRACK

このエントリーをはてなブックマークに追加   

パンク修理をしました

先日空気が抜けてきたので虫ゴムの交換を行いましたが、4ヶ月ほど経った先日、突然タイヤがペシャンコになっていました。

空気を入れると、あからさまに弁のあるところと反対側から「シューッ」と音が聞こえてきます。
これはいよいよパンクですね。

虫ゴムの交換ほど簡単ではありませんが、世の中にはパンク修理キットが普通に売っているのできっとできるでしょう。

やってみました。

パンク補修中


パンク補修中 - 拡大

パンク修理手順の図解は世の中に一杯あるようなので省きます。

私はここ↓のサイトを参考にしました。中のチューブとタイヤ、それからリムとの関係が図解されていてわかりやすかったです。
買い物自転車(ママチャリ)パンク修理 【TAKAよろず研究所】

タイヤチューブの寿命ってどれくらいなんでしょうね?これでしばらく持ってくれるといいんですが。

関連記事:
買い物自転車(ママチャリ)パンク修理 【TAKAよろず研究所】
パンク修理 その前に - 虫ゴムを交換 - 侍ズム

Amazon でパンク修理キットを購入:

オッフル パンク修理セットDX <№2/ワックス付> Y3459
オッフル パンク修理セットDX <№2/ワックス付> Y3459

Amazonで詳しく見る
by G-Tools


楽天でパンク修理キットを購入:

このエントリーをはてなブックマークに追加   

ログ監視ツール QB をリリースしました

ログ監視ツール、QB をリリースしました。
http://yusuke.homeip.net/qb/
まだまだ貧弱な実装ですが少しずつ育てていきたいと思います。

タグ :
このエントリーをはてなブックマークに追加