# 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](
https://metacpan.org/pod/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.
# 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.
- $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->log($message)
Print `$message` and write to the `logfh`.
- $client->report\_timeout()
This method always sends FAIL report to server and notifies to each notifiers.
# AUTHOR
Tokuhiro Matsuno <tokuhirom AAJKLFJEF@ GMAIL COM>
# SEE ALSO
[Ukigumo::Server](
https://metacpan.org/pod/Ukigumo::Server), [Ukigumo:
https://github.com/ukigumo/](Ukigumo:
https://github.com/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.