>       Beats me what a smokebot is. Presumably it's something I should
> know about. But I only have so many hours in the day to know about everything,
> so simple and not requiring effort is better, for me anyway.

I think you'll find that having a smokebot adds to the "simple and not
requiring effort".

A smokebot is a script that runs your test suite at regular intervals,
kicked off by cron.  It checks out a given CVS branch, and then runs the
entire test suite.  For us, it runs once an hour, and if any tests fail,
the entire department gets notified.

# Crontab entries
0 * * * * smokebot HEAD [EMAIL PROTECTED]
30 * * * * smokebot cp2004-branch [EMAIL PROTECTED]

Note that it pulls the main trunk to do testing on the hour, and the
branch for development on the half-hour.

And here's the smokebot script

# The script proper
#!/bin/sh

if [ $# -lt 2 ]
then
    echo Must pass at least a branch, and one email address, 
    echo plus any parms to echo pass to smoke.
    exit 1
fi

REV=$1
shift

MAIL=$1
shift

cd $TMP
DIR=tw
FULLPATH=$TMP/$DIR

# This assumes you have already logged in once as anoncvs
# so that the password is in your ~/.cvspass file.
cvs -d/home/cvs -Q co -d $DIR -r $REV tw > /dev/null

TWROOT=$FULLPATH
export TWROOT

/home/smoke/tw/Dev/devapache stop  >  /dev/null 2>&1
/home/smoke/tw/Dev/devapache start > /home/smoke/smoke.out 2>&1 

cd $TWROOT
smoke $@ >> /home/smoke/smoke.out 2>&1 
grep -i "^Failed" /home/smoke/smoke.out > /home/smoke/smoke.out.fail

if [ -s /home/smoke/smoke.out.fail ]
then
    STATUS="FAILED"
    mail -s"Smoke $REV $@ $STATUS `date`" $MAIL < /home/smoke/smoke.out
else
    STATUS="passed"
fi

/home/smoke/tw/Dev/devapache stop >> /home/smoke/smoke.out 2>&1 
-- 
Andy Lester => [EMAIL PROTECTED] => www.petdance.com => AIM:petdance

Reply via email to