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

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

  • 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:[email protected]/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
    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/

    It is REALLY cool when you favorite tool are integrated to each other
    :slight_smile:

  • 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

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

publisher:
mail:
address: mail.somesever.com
user_name: anatol
password: anatol
domain: 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. [email protected]
and is located at http://cerberus.rubyforge.org.

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

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

Jonas P. wrote:

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

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

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.

On 24/10/06, Anatol P. [email protected] wrote:

Jonas P. wrote:

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

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