Ukigumoを使う
Ukigumo::Serverは準備できたので、いよいよ「ゆるふわCI」を試してみる!Ukigumo::Clientというライブラリが用意されているので、とりあえずインストールする。
cpanm Ukigumo::Client
でOK。
調べてみるとどうやらCPAN形式でリポジトリ管理されているなら便利そうだけど、そうでないならUkigumo::Client使うメリットは特段なさそうだった。(間違ってたらごめんなさい)
ということで、ゆるふわ CI サーバー Ukigumo ちゃんのつかいかた、かいたよーに紹介されているスクリプトをちょいと改変させてもらって、APIをそのまま叩いてみる。(手抜きです、これまたごめんなさい)
#!/usr/bin/perl use strict; use warnings; use utf8; use LWP::UserAgent; use Capture::Tiny qw/capture tee capture_merged tee_merged/; my ( $status, $output ) = run(); my $ua = LWP::UserAgent->new(); $ua->post('http://localhost:5000/api/v1/report/add', [ status => $status, project => 'MyProj', # project name branch => 'master', # branch name body => $output, revision => '1', # revision hash/number repo => 'git://github.com/example/example.git', # repository uri ]); sub run { my $fail; my $merged = capture_merged { eval { system('prove', 'fail.t') == 0 or die @_; }; if ($@) { $fail++; } }; return ( $fail ? 2 : 1, $merged ); }
このスクリプトを実行すると、http://localhost:5000/report/1
こんな感じになります。
導入も難しくなさそうなので、これを実務でも使い始めようかなと思ってる次第。とりあえず自分のテストからだなー。