読者です 読者をやめる 読者になる 読者になる

Ukigumoを使う

perl

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
f:id:kotaroito2002:20111023165456p:image:w360
こんな感じになります。


導入も難しくなさそうなので、これを実務でも使い始めようかなと思ってる次第。とりあえず自分のテストからだなー。