=encoding utf-8 =head1 NAME Dist::Zilla::TravisCI - Travis CI plugins for your DZIL-based distribution =head1 SYNOPSIS [@Prereqs] [TravisYML] [Git::CommitBuild] release_branch = build/%b release_message = Release build of v%v (on %b) [@Git] allow_dirty = dist.ini allow_dirty = README allow_dirty = .travis.yml push_to = origin push_to = origin build/master:build/master =head1 DESCRIPTION =head2 What is Travis CI? L<Travis CI|https://travis-ci.org/> is pure awesome! Travis is a free and open source CI platform that hooks directly into L<GitHub|https://github.com/>. It's extremely easy to configure, tests on every major 5.10+ Perl version, and will notify you of test results, either through email or IRC. (Yes, a bot will jump into an IRC room, tell you the results, and bounce. How cool is that?!) If you're not familiar with CI platforms, this is your chance to get your feet wet. CI stands for L<Continuous Integration|http://en.wikipedia.org/wiki/Continuous_integration>. This kind of testing is designed around testing your code every time you commitE<sol>push a change. In this case, this is a hook into Git via GitHub to make sure that any change you make is going to pass tests. =head2 Perl is already a "test-heavy" community. What does this add? This is true. Travis CI has a much more profound use with languages without a deep-seated testing platform like Perl's tE<sol>* directory (and its hooks with CPAN). However, adding Travis CI to your test platform has its benefits: =over =item * Testing in a plain vanilla environment, which your work environment is most definitely B<NOT>. =item * Testing with Perl 5.10, 5.12, 5.14, 5.16, and beyond, all at the same time. =item * Testing your B<DZIL> environment, which not even CPAN can do. =item * Use Windows or some other non-Linux OS for your work environment? Great. Travis runs on Ubuntu, so you can confirm that it works on Linux. (Eventually, Travis will support other OSs, like Windows, to make this even sweeter!) =item * L<Minimum Version Dependency Testing|Dist::Zilla::TravisCI::MVDT> =item * Public announcements of test results. If somebody breaks something in master, make sure EVERYBODY knows it! =item * If nothing else, you get many more tests before it even touchs CPAN. =back =head2 What about the automated CPAN testers? They're great! But they are also a bit too late in the process. Sure, you can fix what you find after you've found something, but you want some extra insurance that your production release is actually production ready. Development releases on CPAN also work, but you have no idea what is on those CPAN tester platforms. Does it cover the full gamut of Perl versions, or are they just grabbing the latest? Are they all using the latest module dependencies (which may not be want you want)? You have more control over your Travis CI platform, so you can set up the environment they way you want it. That's not to say that the massive CPAN tester army isn't a great boon for Perl, but in the fight against bugs, you want every weapon available. =head2 This sounds complicated... Actually, it's the polar opposite of complicated. This is literally a full guide on how to make it work: =over =item 1. L<Sign into Travis CI|http://travis-ci.org/users/auth/github> with your GitHub account. =item 2. Flip a bit on your distro. =item 3. Put the L<TravisYML|Dist::Zilla::Plugin::TravisYML> plugin in your dist.ini. =back There's some extra configuration you can do: build branches, MVDT, etc. But, that's the basic setup. Easy! =head1 DONATIONS Travis CI is a completely free service, and they put in a lot of hard work to make it what it is. L<Please donate!|https://love.travis-ci.org/> =head1 TODO =over =item * B<MVDT> - Yes, I actually need to finish MVDT on my own distros. I have an excuse, though: I need this in CPAN in order for Travis to download it. Hopefully, I can get this finished soon now... =item * B<Tests> - This has actually been well-tested via other modules, but I still need to add in a test platform here. Kinda sad, actually... =back =head1 AVAILABILITY The project homepage is L<https://github.com/SineSwiper/Dist-Zilla-TravisCI/wiki>. The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit L<http://www.perl.com/CPAN/> to find a CPAN site near you, or see L<https://metacpan.org/module/Dist::Zilla::TravisCI/>. =for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan =head1 SUPPORT =head2 Internet Relay Chat You can get live help by using IRC ( Internet Relay Chat ). If you don't know what IRC is, please read this excellent guide: L<http://en.wikipedia.org/wiki/Internet_Relay_Chat>. Please be courteous and patient when talking to us, as we might be busy or sleeping! You can join those networks/channels and get help: =over 4 =item * irc.perl.org You can connect to the server at 'irc.perl.org' and join this channel: #distzilla then talk to this person for help: SineSwiper. =back =head2 Bugs / Feature Requests Please report any bugs or feature requests via L<https://github.com/SineSwiper/Dist-Zilla-TravisCI/issues>. =head1 AUTHOR Brendan Byrd <BBYRD@CPAN.org> =head1 COPYRIGHT AND LICENSE This software is Copyright (c) 2012 by Brendan Byrd. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible)