About Ukigumo server

Ukigumo server is a yet another minimalistic "Continious testing server".

Ukigumo server is a:

Ukigumo server is not a:

You can send a test results to Ukigumo server. Ukigumo server stores the result, and display it. (Ukigumo server find_or_create's 'project', 'branch' automatically.)

Client code

This is a example code of Ukigumo client code. You can run the code by cron(1). The client code have few deps. very easy.

You can add a notification on the bottom of client code. I notify to Ikachan server on working.

#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Capture::Tiny qw(tee_merged);
use LWP::UserAgent;

my $UKIGUMO_SERVER = 'http://localhost:9052';

my $failed = 0;
sub run {
    system(@_)==0 or die "FAIL: @_";
}

my $body = tee_merged {
    eval {
        run("git pull");
        run("git status");
        run("perl Makefile.PL");
        run("make test");
    };
    if ($@) {
        $failed++;
        warn $@;
    }
};

my $revision = substr( `git rev-parse HEAD`, 0, 10 ) || 'Unknown';
my $branch   = `git branch|grep '^*'`;
   $branch =~ s/^\* //;
   $branch =~ s/\s*$//;
my $repository = `git remote -v | head -1| awk '{print \$2}'`;
   $repository =~ s/\n//;

print "'$revision', '$repository', '$branch'\n";

my $ua = LWP::UserAgent->new();
my $res = $ua->post(
    "$UKIGUMO_SERVER/api/v1/report/add",
    [
        status   => $failed ? 2 : 1,             # status code: SUCCESS:1, FAIL:2, N/A:3
        project  => 'MyProj',      # project name
        branch   => $branch,       # branch name
        revision => $revision,
        repo     => $repository,
    ]
);
$res->is_success or die $res->as_string;

# and you can send a report to the developers.
#  by ikachan, im.kayac.com, mail, etc.