I'm using Cerberus for running tests for several Rails projects on the
same server. I initially had some problems with them running over each
other, because of server load or whatever. This resulted in false
failure notifications that were fixed on the next run.
My solution in the end was to set up a script that does the following:
- check for the lock file, and exit if it exists
- touch a 'lock file'
- run each build in series (not using "build all", but by building
them one at a time)
- remove the lock file
Then this script gets called by cron every minute. If builds are still
being run, it skips and tries again next time.
So far this has been working pretty well for me :)
Jeremy
On Dec 8, 7:53 pm, Matthew Krom <
matthew.k...@gmail.com> wrote:
> Thanks, Peter and Craig. So far so good. I'm about ready for 'heavy-duty'
> use (meaning, relying on it to catch build breaks for several projects).
>
> Another question (haven't looked at the source yet): Is there an exclusive
> lock in cerberus to prevent it from running twice concurrently? i.e., if we
> schedule cerberus in cron every 15 minutes, is there a chance it'll try to
> run the same test suite twice?
>
> I'm not saying that some of the test suites take 15 minutes. But if we run
> cerberus with --force 4x/day, and then run it in "normal" mode every 10
> minutes, if there are a lot of projects there could be plenty of collisions.
>
> Thanks again for any insight!
> Matt
>
> On Mon, Dec 7, 2009 at 11:01 AM, Craig Jolicoeur <
cpjolico...@gmail.com>wrote:
>
>
>
>
>
> > Hi Matt,
>
> > Glad you found Cerberus.
>
> > Regarding your questions. First, you can force a rebuild by passing
> > the "--force" parameter to the cerberus command. As you've found out,
> > Cerberus doesn't rebuild by default unless it notices changes in the
> > SCM, but you can manually force a new run with the --force param.
>
> > Right now there is not a way to specify any kind of "pre-hook"
> > configuration changes, but you do have a few options. First, if your
> > SCM supports it (I think both git and subversion do) you can run an
> > SCM hook on a post-checkout and write a script to do what you need
> > configuration-wise. Also, you could use the Cerberus "ruby builder"
> > and write a ruby script that does your configuration updates and then
> > kicks off your build process.
>
> > Lastly, there is a "--verbose" parameter that will give more detailed
> > output. Unfortunately, I don't think it currently works the same
> > under all SCM and Builder/Publisher types so its currently on the TODO
> > list as something that needs to be looked at. In your ~/.cerberus
> > directory you can look at the error.log, and under each project you
> > can check the build logs " ~/.cerberus/work/PROJECT_NAME/logs"
>
> > Development on cerberus has been slow as of late as I've been working
> > on a few other projects, but I hope to pick up some of the TODO list
> > soon.
>
> > - Craig
>
> > On Sat, Dec 5, 2009 at 11:54 PM, Matthew Krom <
matthew.k...@gmail.com>
> >
cerberusci+...@googlegroups.com<cerberusci%2Bunsubscribe@googlegrou
ps.com>
> > .
> >
cerberusci+...@googlegroups.com<cerberusci%2Bunsubscribe@googlegrou
ps.com>
> > .
>
matthew.k...@gmail.com