NAME

    brewbuild - Automate module and reverse-dependency testing, on Windows
    and Unix.

SYNOPSIS

    You must be in the root directory of the distribution you want to test.

    Run all unit tests against all installed instances with no other
    action. Upon a FAIL, a log file will be generated in the current
    working directory named "bblog/version.bblog"

        brewbuild
    
        # output
    
        5.8.9 :: PASS
        5.20.3 :: FAIL
        5.22.1 :: PASS

    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. In this
    case, FAILs are stored in "bblog/revdep-module-name.version.bblog"

        brewbuild --revdep # or -R
    
        # example output, in my Mock::Sub repo directory
    
        - working on reverse dependencies: Test-BrewBuild, File-Edit-Portable,
          Devel-Examine-Subs, Devel-Trace-Subs
    
        Test::BrewBuild
        5.18.4 :: FAIL
        5.22.1 :: PASS
    
        File::Edit::Portable
        5.18.4 :: PASS
        5.22.1 :: PASS
    
        Devel::Examine::Subs
        5.18.4 :: PASS
        5.22.1 :: PASS
    
        Devel::Trace::Subs
        5.18.4 :: PASS
        5.22.1 :: PASS

    Print usage information

        brewbuild -h

    Run on specific versions only (Unix)

        brewbuild --on 5.20.3 -o 5.8.9

    Install three new instances of perl, randomly

        brewbuild --new 3

    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 --install 5.20.3

    ...multiple versions can be passed in at once

        brewbuild -i 5.20.3 -i 5.14.4 -i 5.23.5

    Display test platform setup instructions for Unix and Windows

        brewbuild --setup

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, as well as test all of your
    down-river CPAN modules that rely on your module against the locally
    updated version.

    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, unless
    otherwise specified.

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

TEST PLATFORM CONFIGURATION

    Test::BrewBuild test platform configuration guide

 UNIX

    Install perlbrew and related requirements:

        cpanm App::perlbrew
        perlbrew install-patchperl
        perlbrew install-cpanm

    Install and switch to your base perl instance, and install
    Test::BrewBuild:

        perlbrew install 5.22.1
        perlbrew switch 5.22.1
        cpanm Test::BrewBuild

 WINDOWS

    Note that the key here is that your %PATH% must be free and clear of
    anything Perl. That means that if you're using an existing box with
    Strawberry or ActiveState installed, you *must* remove all traces of
    them in the PATH environment variable for ``brewbuild'' to work
    correctly.

    Easiest way to guarantee a working environment is using a clean-slate
    Windows server with nothing on it. For a Windows test platform, I
    mainly used an Amazon AWS t2.small server.

    Download/install git for Windows:

        https://git-scm.com/download/win

    Create a repository directory, and enter it:

        mkdir c:\repos
        cd c:\repos

    Clone and configure berrybrew

        git clone https://github.com/dnmfarrell/berrybrew
        cd berrybrew
        bin\berrybrew.exe config (type 'y' when asked to install in PATH)

    Close the current CMD window and open a new one to update env vars

    Check available perls, and install one that'll become your core base
    install

        berrybrew available
        berrybrew install 5.22.1_64
        berrybrew switch 5.22.1_64
        close CMD window, and open new one

    Make sure it took

        perl -v

    Install Test::BrewBuild

        cpanm Test::BrewBuild

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.

