# \[ANN\] Cerberus Continuous Integration tool released

**URL:** <https://www.ruby-forum.com/t/ann-cerberus-continuous-integration-tool-released/98578>\
**Category:** Ruby\
**Created:** [July 16, 2006, 9:11am UTC](https://www.ruby-forum.com/t/ann-cerberus-continuous-integration-tool-released/98578 "2006-07-16T09:11:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![anatol](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ba0ec/32.png) [@anatol](https://www.ruby-forum.com/u/anatol)\
**Post date:** [July 16, 2006, 9:11am UTC](https://www.ruby-forum.com/t/ann-cerberus-continuous-integration-tool-released/98578/1 "2006-07-16T09:11:35Z")

</div>

Cerberus is a Continuous Integration (CI) software. Cerberus could be  
periodically run from scheduler and check if application tests are  
broken. If it happens then Cerberus will send notification to  
developers. Cerberus perfectly works both on Windows and \*nix platforms.

For more CI theory read this document from Martin F.  
[Continuous Integration](http://www.martinfowler.com/articles/continuousIntegration.html).

Requirements:  
ruby - 1.8.2 or higher  
rake - 0.7 or higher  
svn client - 1.2 or higher

What ‘Cerberus’ name means?  
Quote from Wikipedia ([Cerberus - Wikipedia](http://en.wikipedia.org/wiki/Cerberus))

Cerberus or Kerberos (Kerberos, demon of the pit), was the hound of  
Hades-a monstrous three-headed dog (sometimes said to have 50 or 100  
heads) with a snake for a tail and innumerable snake heads on his back.  
He guarded the gate to Hades (the Greek underworld) and ensured that the  
dead could not leave and the living could not enter. His brother was  
Orthrus. He is the offspring of Echidna and Typhon.

So Cerberus will guard your tests and not allow your project to go to  
the world of dead.

To use Cerberus it is very easy. First install it. Easiest way to do it  
through RubyGems package manager.

‘gem install cerberus’

or get Cerberus distribution package right from download page  
[http://rubyforge.org/frs/?group\_id=1794](http://rubyforge.org/frs/?group_id=1794)

then you need to add project that will be watched by Cerberus. Do it by

cerberus add (DIR|SVN\_URL) APPLICATION\_NAME=some\_app  
RECIPIENTS=removed\_email\_address@domain.invalid,removed\_email\_address@domain.invalid

as second parameter you could pass URL to subversion repository or  
directory with working SVN folder.

Go to ~./cerberus and edit config.yml file (only once after installing  
Cerberus). Enter your configuration options here like email server,  
password, user\_name and other options. See ActiveMailer description -  
Cerberus uses it as notification layer. My config file looks like this

mail:  
address: [mail.somesever.com](http://mail.somesever.com)  
user\_name: anatol  
password: anatol

Also check ~/.cerberus/config/\<APPLICATION\_NAME\>.yml and make sure that  
you have right options.

And then run Cerberus

cerberus build APPLICATION\_NAME #Run project

It will check out latest sources and run tests for your application. If  
tests are broken - recipients will receive notifications.

But of course better run Cerberus automatically from Cron. Run Cerberus  
for project each 10 minutes would be ok.

Well, thats all. If you have any questions, proposals - just let me  
know.

---

<div class="post-metadata">

**Author:** ![anatol](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ba0ec/32.png) [@anatol](https://www.ruby-forum.com/u/anatol)\
**Post date:** [July 18, 2006, 11:24am UTC](https://www.ruby-forum.com/t/ann-cerberus-continuous-integration-tool-released/98578/2 "2006-07-18T11:24:16Z")

</div>

Dear Anatol,

Thank you for this valuable tool. It’s working out-of-the-box for me and  
took me about 10 minutes to setup for a project. I especially like the  
friendly mails you send when somebody fixed a build.

I have it running on a windows box with nnCron, the only thing I had to  
add was an environment variable CERBERUS\_HOME (this is for windows  
only).

Highly recommended for anyone who values having a continuous test  
environment!

Best regards,

Arjen W.

---

<div class="post-metadata">

**Author:** ![anatol](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ba0ec/32.png) [@anatol](https://www.ruby-forum.com/u/anatol)\
**Post date:** [July 18, 2006, 9:00pm UTC](https://www.ruby-forum.com/t/ann-cerberus-continuous-integration-tool-released/98578/3 "2006-07-18T21:00:16Z")

</div>

Hi. Thanks for your response, Arjen.

Arjen W. wrote:

> Dear Anatol,
> 
> Thank you for this valuable tool. It’s working out-of-the-box for me and  
> took me about 10 minutes to setup for a project. I especially like the  
> friendly mails you send when somebody fixed a build.  
> RubyGems help in simplification of installation a lot. Let’s say ‘thank  
> you’ to RubyGems project developers.

> I have it running on a windows box with nnCron, the only thing I had to  
> add was an environment variable CERBERUS\_HOME (this is for windows  
> only).  
> Yeap. There is such issue with nnCron scheduler. nnCron for some reason  
> do not pass HOME environment variable to launched process. So you need  
> manually set up this variable in config file and Cerberus would store  
> its data in HOME/.cerberus or setup CERBERUS\_HOME variable. I will add  
> this question to project FAQ.

> Highly recommended for anyone who values having a continuous test  
> environment!  
> Thanks again for warm word, Arjen. I would like to say several words  
> about reasons of creating this tool.

I am test-infected developer and I use a lot of tests in my projects.  
But there is should be a tool that check tests after each commit,  
because developers sometimes being too lazy to run tests. Also test  
should run on separate environment to make sure that tests not interfere  
with something on development environment. So Cerberus is such tool that  
will run tests for you.

I tried to install DamageControl - and seems that this project is dead  
(and svn HEAD does not in production state at all). continuous\_builder  
plugin works only on \*nix OS and on machine where located your project  
subversion repository - it is not suited for me.

So i implement Cerberus (I did it in 3 days) and use for my projects  
almost month. I am happy with Cerberus and encourage others to try it.
