Ukigumo はゆるふわであることを第一目標として設計されているので、適当にサーバーを設置していれば、プロジェクトの担当者がそれぞれすきなタイミングでつかえるようになります。

まあ、なんか気軽に設置して気軽につかえるやつがいまいまほしかったのでつくったというかんじです。

クライアント側とサーバー側は完全に分離しているんで、クライアント側は自分のすきな実装でできるし、サーバーの管理者の世話になる必要がまったくありません。その方が楽でしょうということで。というか俺は管理したくないので。いや、するけど、できるだけ最低限の手間でやりたいじゃん。セットアップも超簡単にできるようにしてあるというか、むしろ dotcloud とかにすぐに設置できるレベルですよ。

で、クライアント側はどうやってつかいはじめたらいいかということだけども、非常に簡単で、以下のように一個 HTTP Request をおくるだけでいいです。プロジェクトなどの登録は不要です。find_or_create 的につくられます。ゆるふわなんで。

    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
    
    use LWP::UserAgent;
    
    my $ua = LWP::UserAgent->new();
    $ua->post('http://localhost:9052/api/v1/report/add', [
        status => 1, # status code: SUCCESS:1, FAIL:2, N/A:3
        project => 'MyProj', # project name
        branch  => 'master', # branch name
        vc_log  => <<'...',  # optional
    commit 80202d0952c6f7d9aeb6dc24a12484e47e212c28
    Author: Tokuhiro Matsuno <tokuhirom@gmail.com>
    Date:   Tue Sep 6 10:11:08 2011 +0900
    
    do not index production.pl
    ...
        body => <<'...',     # test report body
    t/00_compile.t .. 
    1..1
    ok 1 - use Acme::Failing;
    ok
    t/01_fail.t ..... 
    not ok 1 - oops..
    1..1
    
    #   Failed test 'oops..'
    #   at t/01_fail.t line 6.
    # Looks like you failed 1 test of 1.
    Dubious, test returned 1 (wstat 256, 0x100)
    Failed 1/1 subtests 
    
    Test Summary Report
    -------------------
    t/01_fail.t   (Wstat: 256 Tests: 1 Failed: 1)
      Failed test:  1
      Non-zero exit status: 1
    Files=2, Tests=2,  0 wallclock secs ( 0.04 usr  0.01 sys +  0.05 cusr  0.02 csys =  0.12 CPU)
    Result: FAIL
    ...
        revision => '80202d0952c6f7d9aeb6dc24a12484e47e212c28', # revision hash/number
        repo     => 'git://github.com/tokuhirom/Acme-Failing.git', # repository uri
    ]);

ゆるふわなんで、へんなプロジェクトつくっちゃったりする日もあるとおもいますけど、そういうときは適当にすぐけせるんで、まあ適当にけせばいいんじゃないすかね。

いうたら、こんぐらい単純にできるんです。とても簡単でしょ。これ、shell script で hirose31 さんとかだったらぺろってかくところなんでしょうけど、僕は shell script 力がひくくて無理でした。Ukigumo::Client はこのぐらいのことやってるスクリプトをダラダラとながくかいてるだけなんですよ。。というかシンプルにかいてみようとおもってかいたらおもった以上にみじかくかけてしまってちょっとショックをうけているレベルですよ。
#include "eg/perlish-client.pl"
こんぐらいのスクリプトをかいたら、あとは適当に cron でぶんまわしておけば、FAIL したときに表示はされますね。でもこれだけだとあんま意味ないんで、id:yappo の <a href="http://blog.yappo.jp/yappo/archives/000760.html">ikachan</a> サーバーと併用するか、im.kayac とかつかうとかした方がいいとおもいます。そんぐらいは自分でかけるよね?

まあそんなこんなで超簡単に設置できるし、超簡単にクライアント側もかけるからお気軽につかってみたらいいんじゃないすかね。
