Skip to content

ukigumo/Ukigumo-Client

Repository files navigation

Build Status

NAME

Ukigumo::Client - Client library for Ukigumo

SYNOPSIS

use Ukigumo::Client;
use Ukigumo::Client::VC::Git;
use Ukigumo::Client::Executor::Auto;
use Ukigumo::Client::Notify::Debug;
use Ukigumo::Client::Notify::Ikachan;

my $app = Ukigumo::Client->new(
    vc   => Ukigumo::Client::VC::Git->new(
        branch     => $branch,
        repository => $repo,
    ),
    executor   => Ukigumo::Client::Executor::Perl->new(),
    server_url => $server_url,
    project    => $project,
);
$app->push_notifier(
    Ukigumo::Client::Notify::Ikachan->new(
        url     => $ikachan_url,
        channel => $ikachan_channel,
    )
);
$app->run();

DESCRIPTION

Ukigumo::Client is client library for Ukigumo.

ATTRIBUTES

  • workdir

    Working directory for the code. It's $ENV{HOME}/.ukigumo/work/$project/$branch by default.

  • project

    Its' project name. This is a mandatory parameter.

  • logfh

    Log file handle. It's read only parameter.

  • server_url

    URL of the Ukigumo server. It's required.

  • user_agent

    instance of LWP::UserAgent. It's have a default value.

  • vc

    This is a version controller object. It's normally Ukigumo::Client::VC::*. But you can write your own class.

    VC::* objects should have a following methods:

      get_revision branch repository
    
  • executor

    This is a test executor object. It's normally Ukigumo::Client::Executor::*. But you can write your own class.

  • notifiers

    This is a arrayref of notifier object. It's normally Ukigumo::Client::Notify::*. But you can write your own class.

  • compare_url

    URL to compare differences between range of commitments.

  • elapsed_time_sec

    Elapsed time as seconds about executing tests.

METHODS

  • $client->push_notifier($notifier : Ukigumo::Client::Notify)

    push a notifier object to $client->notifiers.

  • $client->run()

    Run a test context.

  • $client->send_to_server($status: Int)

    Send a notification to the sever.

  • reflect_result($status: Int)

    Send a notification to the server and notify via registered notifier.

  • $client->tee($command: Str)

    This method runs $command and tee the output of the STDOUT/STDERR to the logfh.

    Return: exit code by the $command.

  • $client->logger->infof($message)

    Print $message as INFO and write to the logfh.

  • $client->logger->warnf($message)

    Print $message as WARN and write to the logfh.

  • $client->report_timeout()

    This method always sends FAIL report to server and notifies to each notifiers.

CONFIGURATION

If .ukigumo.yml file is on the project root, Ukigumo::Client loads that file and applies the settings that are written in it.

Please see also ukigumo.yml.pod.

AUTHOR

Tokuhiro Matsuno <tokuhirom AAJKLFJEF@ GMAIL COM>

SEE ALSO

Ukigumo::Server, Ukigumo

LICENSE

Copyright (C) Tokuhiro Matsuno

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.