# \[ANN\] Great step for Ruby CI. Cerberus 0.3.0 released

**URL:** <https://www.ruby-forum.com/t/ann-great-step-for-ruby-ci-cerberus-0-3-0-released/73393>\
**Category:** Ruby\
**Created:** [October 24, 2006, 10:42am UTC](https://www.ruby-forum.com/t/ann-great-step-for-ruby-ci-cerberus-0-3-0-released/73393 "2006-10-24T10:42:58Z")\
**Posts on this page:** 4\
**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:** [October 24, 2006, 10:42am UTC](https://www.ruby-forum.com/t/ann-great-step-for-ruby-ci-cerberus-0-3-0-released/73393/1 "2006-10-24T10:42:58Z")

</div>

Hi, ruby lovers.

I am glad to announce 0.3.0 release of Cerberus CI tool. This release is  
claimed to be greatest step in Cerberus development.

Release 0.3.0 brings new cool features that were requested by Cerberus  
users.

== Highlight whats new in current release.

- Added support of Darcs VCS. Darcs is a modern distributed VCS and now  
it is possible to use Darcs together with Cerberus.  
To use it just add to configuration file following section  
scm:  
type: darcs  
url: [http://somerepourl](http://somerepourl)

- Campfire is a team collaboration tool from 37Signals. As many rubyists  
use it Cerberus team added publisher that allows sending Cerberus  
notification right to Campfire rooms. To use it add to config

publisher:  
campfire:  
url: [http://somelogin:removed\_email\_address@domain.invalid/room/51660](http://somelogin:removed_email_address@domain.invalid/room/51660)

It is great when you favorite tools are integrated together.

- Added changeset\_url option. Trac is great tool and you could see  
repository changes in your browser by url like this one  
[http://dev.rubyonrails.org/changeset/5317](http://dev.rubyonrails.org/changeset/5317)  
Cerberus team added support of this feature. Now all notifications  
contain link to browsable changeset.  
To activate it just add Trac url to your config by following option.  
changeset\_url: [http://dev.rubyonrails.org/changeset/](http://dev.rubyonrails.org/changeset/)

- Added possibility to specify user\_name and password for Subversion.  
If your subversion repository is restricted by login/password you  
could specify them in configuration.  
Just add them to ‘scm’ section of configuration file  
scm:  
url: svn+ssh://somerepourl/trunk  
user\_name: svnurl  
password: svn passsword

== What is Cerberus?  
Cerberus is a Continuous Builder software. Cerberus could be  
periodically run from any scheduler and check if application tests were  
broken. If it happened then Cerberus would send notification to  
developers.

== There are several CI solutions already present, why do you need to  
use Cerberus?  
Main advantages of Cerberus over other solutions are:

1. Cerberus could be run on any machine not only where SVN repository  
located.
2. Cerberus works not only for Rails projects, but for any other Ruby  
projects as well as for other platforms (Maven2 for Java)
3. Cerberus is a multiplatform solution: it runs excellent both on \*nix  
and Windows.
4. Cerberus distributed via RubyGems, so it is very easy to install and  
very easy to update to the latest stable version. Just do ‘gem install  
cerberus’
5. Cerberus very easy to start using. Just type ‘cerberus add  
PROJECT\_URL|PROJECT\_DIR’
6. Cerberus is lightweight solution: most of the time ruby process even  
not runs - Rake run only in case if changes in project sources were  
find.

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

‘gem install cerberus’

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

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

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

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  
or  
cerberus buildall #Run all available projects

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.

== License

This plugin is licensed under the MIT license. Complete license text is  
included in the LICENSE file.

== Author

This software was created by Anatol P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
and is located at [http://cerberus.rubyforge.org](http://cerberus.rubyforge.org).

---

<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:** [October 24, 2006, 1:14pm UTC](https://www.ruby-forum.com/t/ann-great-step-for-ruby-ci-cerberus-0-3-0-released/73393/2 "2006-10-24T13:14:48Z")

</div>

Hey, that’s really cool. Now I have to make tests for my app to make  
the use of this 😛

Do you already have SVN hooks ? It might be pretty easy to make a  
post-commit hook that runs cerberus.

* * *

## #!/bin/sh cerberus build YOUR\_PROJECT\_NAME

Put that in “your\_svn/hooks/post-commit” file and cerberus will run on  
each commit.

It could even be made generic if YOUR\_PROJECT\_NAME == your\_svn\_name.

–  
Cheers,  
zimbatm

> **[oree.ch](http://zimbatm.oree.ch)**
>
> This domain may be for sale!

---

<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:** [October 24, 2006, 1:26pm UTC](https://www.ruby-forum.com/t/ann-great-step-for-ruby-ci-cerberus-0-3-0-released/73393/3 "2006-10-24T13:26:02Z")

</div>

Jonas P. wrote:

> Hey, that’s really cool. Now I have to make tests for my app to make  
> the use of this 😛

You should to add tests to your application even if you do not use  
Cerberus. Cerberus just makes life of test-infected people easier.

> Do you already have SVN hooks ? It might be pretty easy to make a  
> post-commit hook that runs cerberus.
> 
> * * *
> 
> ## #!/bin/sh cerberus build YOUR\_PROJECT\_NAME

This question (and answer) presented on Cerberus FAQ section  
[http://cerberus.rubyforge.org/faq.html](http://cerberus.rubyforge.org/faq.html)

I am looking for way to add post-commit hook for Darcs. Well, Darcs repo  
is a just directory but I think that there is should be some solution.

---

<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:** [October 24, 2006, 2:42pm UTC](https://www.ruby-forum.com/t/ann-great-step-for-ruby-ci-cerberus-0-3-0-released/73393/4 "2006-10-24T14:42:12Z")

</div>

On 24/10/06, Anatol P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Jonas P. wrote:
> 
> > Hey, that’s really cool. Now I have to make tests for my app to make  
> > the use of this 😛
> 
> You should to add tests to your application even if you do not use  
> Cerberus. Cerberus just makes life of test-infected people easier.

Sorry, it was some kind of humor. I NEED to start writing tests but  
somehow I can’t seem to get into it.

> I am looking for way to add post-commit hook for Darcs. Well, Darcs repo  
> is a just directory but I think that there is should be some solution.

Thanks, darcs hooks are under way. In the meanwhile, you could use  
inotify (on linux) to watch for new patches in \_darcs/patches.

–  
Cheers,  
zimbatm

> **[oree.ch](http://zimbatm.oree.ch)**
>
> This domain may be for sale!
