debianにhudsonをインストールしたのでgitと連携させるよ。とりあえずgitコミット時に自動ビルドすることにしたよ。
Hudson GIT pluginのインストール
- Hudsonの管理>>プラグインの管理>>利用可能タブを選択
- Hudson GIT pluginを探してチェックを入れる
(利用可能タブに見つからない場合はインストール済みタブを確認してみる。) - 最下部の「インストール」ボタンを押す
- インストールが完了したら「ジョブが実行でなければ再起動」ボタンを押してHudsonを再起動
- 再起動したらHudsonの管理>>プラグインの管理>>インストール済みタブでHudson GIT pluginが有効化されていることを確認
Gitコミット時にHudsonによる自動ビルドを行うための設定
Hudson側
ジョブの作成(設定)
■ ソースコード管理システム
Gitを選択し、URL of Repositoryを入力する。
ローカルファイルシステムの場合file://はつけなくてもOK.
■ ビルド・トリガ
Hudsonの管理>システムの設定>セキュリティを有効化 していない場合は設定不要
セキュリティを有効化している場合は次のようにして認証トークンを設定する
- 「リモートからビルド(例:スクリプトから)」を選択
- 認証トークン(任意の文字列)を入力 以下では仮にtokenstringとする
Gitレポジトリ側
hostnameはhudsonの稼動しているホスト名、
jobnameは上で作成したHudsonのジョブ名 とする。
Hudsonにてセキュリティを有効化していない場合
.git/hooks/post-commit に
wget -O /dev/null "http://hostname:8080/job/jobname/build?delay=3sec"
を追加して保存。
もともと書かれている:Nothngは実質何もしないので気になる人はコメントアウトするか削除すればよい。
delayパラメータ: コミット後、ビルドまでの待機時間。上の例はコミット後3秒待ってビルド開始する。
※post-commitを実行可能形式にするのを忘れないこと。
chmod +x post-commit
Hudsonにてセキュリティを有効化している場合
.git/hooks/post-commitに
wget "http://hostname:8080/job/jobname/build?delay=3sec&token=tokenstring&cause=gitcommit"
を追加して保存。
tokenパラメータ: Hudsonのジョブの設定で指定した認証トークン
causeパラメータ: ビルド要因。ここではgitのcommitをトリガとするのでそれがわかるような文字列 gitcommitとした。
gitコミット時にwgetの出力を表示したくない場合は次のように書く(失敗時にはechoでメッセージ表示)
wget -q -O /dev/null "http://hostname:8080/job/jobname/build?delay=3sec&token=tokenstring&cause=gitcommit" || echo "hudson build job failed."
自動ビルドの実行
以上の設定が終了したらgit commitを行うと自動的にジョブで作成したビルド処理が実行される。
うまく行かない場合は、ジョブのコンソール出力を確認してみる。
結局
wgetでビルドのURLを直接叩いてるだけ。
ということは、このコマンドをcrontabに書いて「定期実行は俺に任せろー!」\やめて!/
定期実行はHudson側のスケジュールで設定するといいよ。
UNICUS Co., Ltd.
LOWTECH, Inc.