Dist::Zilla::App::Command::chainsmoke - continuously smoke your dist on your CI server


   dzil chainsmoke [ --mvdt ] [ --silentci ] [ --remote_branch {remote}/{branch} ]


This command smokes the distribution on TravisCI, by rebuilding the YML file, adding a commit, and pushing the branch. The branch is checked for dirty files and remote freshness prior to chain smoking, as a safeguard against Git mistakes. Unlike the plugin version, this doesn't add anything to the build directory.

Of course, you still need to turn on TravisCI and the remote still needs to be a GitHub repo for any of this to work.



This enables the minimum version dependency testing feature from the plugin. It is HIGHLY recommended that you read up on this feature first, and if this is the first time doing these tests on this distro (which the option implies), you should start a new topic branch first, to prevent history pollution on your master/stable branch.


This will turn off all notification (email or IRC) from Travis-CI for the test. Useful if you are running through MVDT and you don't want a lot of spam from it. You will, of course, need to watch for test results from Travis as they happen.

--remote_branch {remote/branch}

This allows you to specify a remote branch to push to. The default is the same branch that your currently in, via 'origin'.

As a safeguard, the default is changed to 'origin/chainsmoking/{local}' while on 'master' or 'stable', or 'origin/chainsmoking/mvdt' if you specify --mvdt without a --remote_branch option. But, you should really just create/switch the local branch yourself to keep from polluting your local repo's master history.


   SineSwiper: rjbs: so, I think I'm going to make this Travis-CI plugin I'm making add in a command called "smokeci"
   SineSwiper: any comments on implementation?
   SineSwiper: the potential exists that other plugins could be made (which would be mutually exclusive, of course) that
               could interface with other CIs
   PerlJam: SineSwiper: what's smokeci do?  Is that like continuous smoking?  I'd call it "burn" or something if so :)
   SineSwiper: smoke testing on the CI
   SineSwiper: PerlJam: heh, continuous smoking
   SineSwiper: maybe I should call it chainsmoke
   PerlJam: SineSwiper++  yes! :)
   rjbs: haha
   SineSwiper: okay, that will be the command name
   SineSwiper: I hated the lack of punct between smoke and ci, anyway


The project homepage is

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit to find a CPAN site near you, or see


Brendan Byrd <>


This software is Copyright (c) 2015 by Brendan Byrd.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)