[ANN] Cerberus Continuous Integration tool released

A

Anatol Pomozov

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 Fowler
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 (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

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

cerberus add (DIR|SVN_URL) APPLICATION_NAME=some_app
[email protected],[email protected]

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
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.
 
A

Arjen Wagenaar

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 Wagenaar
 
A

Anatol Pomozov

Hi. Thanks for your response, Arjen.

Arjen said:
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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,989
Messages
2,570,207
Members
46,783
Latest member
RickeyDort

Latest Threads

Top