UkigumoでCI環境を構築します。
今回構築した環境では、
- proveでテスト実行
- Ikachanでテスト通知
を行うことにしています。
Ukigumo-Serverの設置
gitでcloneしてきます。
$ git clone git://github.com/ukigumo/Ukigumo-Server.git
READMEに従って依存モジュールをインストールします。
$ curl -L http://cpanmin.us | perl - Carton $ carton install
サーバの実行もREADME通りです。
$ carton exec perl -- local/bin/plackup -- port 5555 app.psgi
Ikachanの設置
cpanmでインストールします。
$ cpanm App::Ikachan
以下のコマンドでikachanを起動します。
$ ikachan -S {irc_server_ip} -N {nickname}
Ukigumoでは、「ikachanのURL」と「チャンネル名」を使用します。
Ukigumo-Client
cpanmでインストールします。
$ cpanm Ukigumo::Client
インストールするとukigumo-client.plが使えるようになるので、このスクリプトを使用してテストを実行します。
オプションは以下のものを使います。
- repos
- gitのリポジトリを指定します。
- server_url
- Ukigumo-ServerのURLを指定します。
- command
- proveコマンドを記述します。
以上のことをふまえて、以下の様なコマンドを打ってみる。
$ ukigumo-client.pl --repo={git_repository} --server_url={ukigumo-server-url} --command="prove -Ilib t/" --ikachan_url="http://127.0.0.1:4979/" --ikachan_channel=#ci
問題なく行けたら、cronにこのコマンドを設定します。
perlbrewなどに考慮するため、以下のようなシェルファイルを準備して実行するようにします。
#!/bin/sh export HOME=/home/myapp source ~/perl5/perlbrew/etc/bashrc perlbrew use 5.14.2 ukigumo-client.pl --repo={git_repository} --server_url={ukigumo-server-url} --command="prove -Ilib t/" --ikachan_url="http://127.0.0.1:4979/" --ikachan_channel=#ci