The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

brewbuild - Perl/Berry brew unit testing automation across installed perl versions (Windows and Unix).

Coverage Status

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

    # yep, its that easy. Here's sample 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

    # install three new instances of perl, randomly

    brewbuild --new 3

    # enable debugging, and run against all installed instances (can be used
    # in conjunction with all other args). Use 0-7 as the argument to it.
    # Set to 5 to get typical output beyond just the results

    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.

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

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.