Test::BrewBuild::Dispatch - Dispatch Test::BrewBuild test runs to remote test servers.


    use Test::BrewBuild::Dispatch;

    my $d = Test::BrewBuild::Dispatch->new;

    my $return = $d->dispatch(
        cmd => 'brewbuild -r -R',
        testers => [qw(],
        repo => '',

    print $return;


This is the remote dispatching system of Test::BrewBuild.

It dispatches out test runs to Test::BrewBuild::Tester remote test servers to perform, then processes the results returned from those testers.

By default, we try to look up the repository information from your current working directory. If it can't be found, you must supply it on the command line or within the configuration file.



Returns a new Test::BrewBuild::Dispatch object.

dispatch(cmd => '', repo => '', testers => ['', ''], debug => 0-7)

cmd is the brewbuild command string that will be executed.

repo is the name of the repo to test against, and is optional. If not supplied, we'll attempt to get a repo name from the local working directory you're working in.

testers is manadory unless you've set up a config file, and contains an array reference of IP/Port pairs for remote testers to dispatch to and follow. eg: [qw(]. If the port portion of the tester is omitted, we'll default to 7800.

By default, the testers run on all IPs and port TCP/7800.

debug optional, set to a level between 0 and 7.

See Test::BrewBuild::Tester for more details on the testers that the dispatcher dispatches to.


This function will spin off a continuous run of dispatch() runs, based on whether the commit revision checksum locally is different than that from the remote. It takes all of the same parameters as dispatch().

There is also a configuration file directive in the [Dispatch] section, auto_sleep, which dictates how many seconds to sleep in between each run. The default is 60, or one minute.


Steve Bertrand, <steveb at>


Any and all feedback and help is appreciated. A Pull Request is the preferred method of receiving changes (, but regular patches through the bug tracker, or even just email discussions are welcomed.



Copyright 2016 Steve Bertrand.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See for more information.