This will allow corosync to be run by auto-build. auto-build requires a script called "autobuild.sh" to be in the base directory of the repository.
If you want to run this manually you can. For just building: 1) doxygen (optional) 2) splint (optional) 3) export TARGET=(your mock chroot target) If you want to run the tests then: 1) You will need the latest devel branch of pacemaker installed 2) test nodes with login-less root access (via ssh) 3) export TEST_NODES="n1 n2" etc... Then just run. ./autobuild.sh To run under auto-build: auto-build --config /etc/auto-build.d/auto-build.conf --- autobuild.sh | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 127 insertions(+), 0 deletions(-) create mode 100644 autobuild.sh diff --git a/autobuild.sh b/autobuild.sh new file mode 100644 index 0000000..540d7cb --- /dev/null +++ b/autobuild.sh @@ -0,0 +1,127 @@ +#!/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 +# optional packages +HAVE_SPLINT=0 +which splint >/dev/null 2>&1 && HAVE_SPLINT=1 +HAVE_DOXYGEN=0 +which doxygen >/dev/null 2>&1 && HAVE_DOXYGEN=1 + +rm -rf build_output +mkdir -p build_output + +set -e + +echo 'running autogen ...' +./autogen.sh + +echo 'running configure ...' +# disable-nss as the nss headers have warnings in them +./configure --enable-fatal-warnings --disable-nss > build_output/configure.log 2>&1 + +echo 'building ...' +make > build_output/make.log 2>&1 + +if [ $HAVE_DOXYGEN -eq 1 ] +then + echo 'making doxygen ...' + rm -rf doc/api + make doxygen > build_output/make-doxygen.log 2>&1 +else + echo 'no doxygen, NOT running.' + true +fi + +if [ $HAVE_SPLINT -eq 1 ] +then + echo 'running splint ...' + make lint > build_output/make-lint.log 2>&1 +else + echo 'no splint, NOT running.' + true +fi +echo 'running make distcheck ...' +make distcheck > build_output/make-distcheck.log 2>&1 + +echo 'building source rpm' +rm -f *.src.rpm +make srpm > build_output/make-srpm.log 2>&1 +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 + +echo "running mock init ($TARGET)" +mock -r $TARGET --init > build_output/mock-init.log 2>&1 +echo "running mock rebuild ($SRPM)" +mock -r $TARGET --rebuild $SRPM --with testagents > build_output/mock-rebuild.log 2>&1 + +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" + scp $RPM_LIST $n:/tmp/ + ssh $n "rpm --force -Uvf /tmp/corosync*.rpm" +done + +echo 'running test ...' +pushd cts +# needs sudo to read /var/log/messages +sudo ./corolab.py --nodes "$TEST_NODES" --outputfile ../build_output/cts.log +popd + -- 1.6.6.1 _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
