mirror_corosync/autobuild.sh
2010-05-12 23:13:51 +00:00

100 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
#
# This script is called by auto-build to test
# corosync. It is run continously to help catch regressions.
#
# ENVIRONMENT variables that affect it's behaviour:
#
# TEST_NODES - the hostnames of the nodes to be tested
# TARGET - this is used by mock so look in /etc/mock for
# possible options.
#
# required packages
which mock >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo 'please install mock (yum install mock).'
exit 1
fi
MOCK=/usr/bin/mock
set -e
echo 'running autogen ...'
./autogen.sh
echo 'running configure ...'
./configure
echo 'building source rpm'
rm -f *.src.rpm
make srpm
SRPM=$(ls *src.rpm)
if [ ! -f $SRPM ]
then
echo $0 no source rpm to build from!
exit 1
fi
if [ -z "$TARGET" ]
then
TARGET=fedora-12-x86_64
fi
RPM_DIR=/var/lib/mock/$TARGET/result
rm -f $RPM_DIR/corosync*.rpm
echo "running mock init ($TARGET)"
$MOCK -r $TARGET --init
echo "running mock rebuild ($SRPM)"
$MOCK -r $TARGET --rebuild $SRPM --with testagents
if [ -z "$TEST_NODES" ]
then
echo no test nodes, exiting without running cts.
exit 0
else
# start the VMs, or leave them running?
true
fi
RPM_LIST=
for r in $RPM_DIR/corosync*.rpm
do
case $r in
*src.rpm)
;;
*-devel-*)
;;
# *debuginfo*)
# ;;
*)
RPM_LIST="$RPM_LIST $r"
;;
esac
done
echo installing $RPM_LIST
echo onto the test nodes $TEST_NODES
# load and install rpm(s) onto the nodes
for n in $TEST_NODES
do
ssh $n "rm -rf /tmp/corosync*.rpm"
ssh $n "rm -f /etc/corosync/corosync.conf.*"
scp $RPM_LIST $n:/tmp/
ssh $n "rpm --force -Uvf /tmp/corosync*.rpm"
done
echo 'running test ...'
rm -f cts.log
pushd cts
# needs sudo to read /var/log/messages
sudo -n ./corolab.py --nodes "$TEST_NODES" --outputfile ../cts.log
popd