Smolder - continuous integration smoke server
=============================================

Smolder is a web-based continuous integration smoke server. It's a central
repository for you smoke tests for multiple public and private repositories.

Please see [Smolder::Manual](https://metacpan.org/module/Smolder::Manual)
for how to use it.

![recent smoke reports](http://i.imgur.com/Hb2cD.png)

Features
--------
* Self contained web application
  Smolder has its own built-in HTTP server (Net::Server) and database (SQLite).
* Standard Format
  Smolder uses [TAP](http://en.wikipedia.org/wiki/Test_Anything_Protocol)
  and TAP Archives as its reporting format.
  See [Smolder::Manual](https://metacpan.org/module/Smolder::Manual) for
  more details.
* Multiple Notification Channels
  Smolder can notifiy you of new or failing tests either by email or Atom
  data feeds.
* Public and Private Projects
  Use Smolder for your public open source projects, or for you private work
  related projects. Smolder can host multiple projects of each type.
* Project Graphs
  Smolder has graphs to help you visualize the changes to your test suite
  over time. See how the number of tests has grown or find patterns in
  your failing tests.
* Smoke Report Organization
  You can organize your smoke reports by platform, architecture or any tag
  you want. This makes it easy to see how your project is doing on multiple
  platforms, or with different configurations.

![administration interface](http://i.imgur.com/ASTGB.png)

Install
-------
From the CPAN, using the traditional CPAN shell:

    $ cpan Smolder

or using [cpanminus](https://metacpan.org/module/App::cpanminus):

    $ cpanm --sudo --skip-satisfied Smolder

From the sources:

    $ git clone https://github.com/Smolder/smolder.git
    $ perl Build.PL
    $ ./Build test
    $ sudo ./Build install

Usage
-----
A good practice is to create a dedicated `smolder` user account.

Then create a directory where to store your smoker data, and create
a configuration file:

    HostName    smoker.example.com
    Port        21234
    FromAddress smolder@example.com
    DataDir     /home/smolder/main
    PidFile     /home/smolder/main/smolder.pid
    LogFile     /home/smolder/main/smolder.log

Run the daemon:

    $ smolder --daemon --conf /home/smolder/main/smolder.conf

Now you can submit reports by executing your tests using the `--archive`
option of the `prove` utility:

    $ prove --archive test_run.tar.gz

and send them using the provided `smolder_smoke_signal` utility:

    $ smolder_smoke_signal --server smoker.example.com --port 21234 \
        --username smokebot --password s33kret \
        --project MyProject --file test_run.tar.gz

Again, see [Smolder::Manual](https://metacpan.org/module/Smolder::Manual)
for more details.