NAME

    brewbuild - This is the front-end script for Test::BrewBuild

SYNOPSIS

    You must be in the root directory of the distribution you want to test.
    Note that all arguments passed into the script have single-letter
    counterparts. Also note that each time the command is run, your unit
    tests will be run on all installed *brew instances.

    Run all unit tests against all installed instances with no other action

        brewbuild
    
        # output
    
        perl-5.8.9 :: PASS
        perl-5.20.3 :: PASS
        perl-5.22.1 :: PASS

    Print usage information

        brewbuild -h

    Run on specific versions only

        brewbuild --on 5.20.3 -o 5.8.9

    Run tests on the local working copy of the current module, then run all
    tests of all reverse dependencies of this module (as reported by CPAN),
    to ensure the down river modules will work with your new build

        brewbuild --revdep # or -R

    Install three new instances of perl, randomly

        brewbuild --new 3

    Enable verbose output. '5' displays typical output. '7' is full debug

        brewbuild --debug 5

    Remove all perl instances (less the currently used one), install two
    new random versions, and run tests against all installed perls

        brewbuild --remove --new 2

    Install all available perl versions, and run tests against all of them

        brewbuild --new -1

    Install a specific version and run tests on all instances (include just
    the number portion of the version per "perlbrew available" or
    "berrybrew available"

        brewbuild --version 5.20.3

    ...multiple versions can be passed in at once

        brewbuild -v 5.20.3 -v 5.14.4 -v 5.23.5

    Use a custom plugin containing the build/test commands to pass to
    'perlbrew exec' (can also be set in $ENV{TBB_PLUGIN} for persistence).

    The plugin arg will take a filename as well if the module isn't
    installed. Send in the relative/full path if the plugin isn't in the
    current working directory.

    Your 'brewbuild_exec()' function will receive a Logging::Simple object,
    followed by a single argument if specified per below

        brewbuild --plugin 'Test::BrewBuild::Plugin::DefaultExec' # default

    Send in args that custom plugins can use. brewbuild will be called once
    for each arg, passing a single argument from the list specified on each
    run. Note: --new and --remove are only executed on the first loop

        brewbuild -p My::Plugin --args 1 -a 2

DESCRIPTION

    This brewbuild script installed by the Test::Brewbuild module allows
    you to perform your unit tests across all of your Perlbrew (Unix) or
    Berrybrew (Windows) Perl instances, with the ability to very easily
    create your own plugins that contain the code that perlbrew/berrybrew
    exec will process. (See Test::BrewBuild::Plugin::DefaultExec for an
    example).

    For Windows, you'll need to install Berrybrew (see "SEE ALSO" for
    details). For Unix, you'll need Perlbrew.

    It allows you to remove and reinstall on each test run, install random
    versions of perl, or install specific versions.

    All unit tests are run against all installed instances.

    The actual module is just a helper for the installed script, and isn't
    designed for end-user use.

AUTHOR

    Steve Bertrand, <steveb at cpan.org>

 CONTRIBUTING

    Any and all feedback and help is appreciated. A Pull Request is the
    preferred method of receiving changes
    (https://github.com/stevieb9/p5-test-brewbuild), but regular patches
    through the bug tracker, or even just email discussions are welcomed.

BUGS

    https://github.com/stevieb9/p5-test-brewbuild/issues

SUPPORT

    You can find documentation for this script and module with the perldoc
    command.

        perldoc brewbuild
        perldoc Test::BrewBuild

SEE ALSO

    Berrybrew for Windows:

    https://github.com/dnmfarrell/berrybrew

    Perlbrew for Unixes:

    http://perlbrew.pl

LICENSE AND COPYRIGHT

    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 http://dev.perl.org/licenses/ for more information.

