#!/bin/bash
-
+##export PATH=/usr/sbin:/sbin:/usr/bin:/bin
# use svn propset svn:keywords Revision to enable this
REVISION=$(echo '$Revision$' | sed -e 's,\$,,g' -e 's,^\w*:\s,,' )
SVNPATH="svn+ssh://build@svn.one-lab.org/svn/build/trunk"
DISTRO=onelab
MAILTO="onelab-build@one-lab.org"
-DISTROMAKETAGS=onelab-tags.mk
-
+PLDISTROTAGS=onelab-tags.mk
TESTBUILDURL="http://build.one-lab.org/"
+TESTBOX=onelab-test.inria.fr
TESTBOXSSH=root@onelab-test.inria.fr
TESTSVNPATH="svn+ssh://build@svn.one-lab.org/svn/new_plc_api/trunk/plctest"
TESTSCRIPT=TestMain.py
-
####################
# plc chroot runs in UTC
DATE=$(date -u +'%Y.%m.%d')
chroot /plc/devel/root su - build <<EOF
$CHROOTBINDIR/$COMMAND $@
EOF
+
}
# Notify recipient of failure or success, manage various stamps
fi
}
+
function build () {
set -x
set -e
cd $ROOT
svn co $SVNPATH $BASE
- # if TAGSTAG specified : update DISTROMAKETAGS with this tag
+ # if TAGSTAG specified : update PLDISTROTAGS with this tag
if [ -n "$TAGSTAG" ] ; then
cd $BASE
- svn up -r $TAGSTAG $DISTROMAKETAGS
+ svn up -r $TAGSTAG $PLDISTROTAGS
cd -
fi
show_env
echo "Running make IN build $(pwd)"
- make stage1=true ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
- make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
+ make stage1=true ${MAKEOPTS[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE
+ # in case we use an older build
+ set +e
+ make ${MAKEOPTS[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE versions
+ set -e
+ make ${MAKEOPTS[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
# restore silent mode - otherwise cron gets it
set +x
set -e
trap failure ERR INT
+
+
echo -n "============================== Starting $COMMAND:runtest on "
date
- ### compute URL to the myplc package
+
+ ### compute URL to the myplc package
build=$1; shift
buildname=$(basename $build)
cd $build
rpm=$(find RPMS -name myplc\*.rpm )
url=${TESTBUILDURL}${DISTRO}/${buildname}/${rpm}
-
### checkout the test material
svn co ${TESTSVNPATH} plctest
# compute test directory name on test box
ssh ${TESTBOXSSH} mkdir -p ${testdir}
rsync -a -v plctest/ ${TESTBOXSSH}:${testdir}
# invoke test on testbox
- ssh ${TESTBOXSSH} python -u ${testdir}/${TESTSCRIPT} ${url}
- if [ "$?" != 0 ] ; then
+ ssh ${TESTBOXSSH} python -u ${testdir}/${TESTSCRIPT} ${url}
+ #invoke make install from build to the testbox
+ make install PLCHOST=${TESTBOX}
+
+ if [ "$?" != 0 ] ; then
failure
fi
echo SVNPATH=$SVNPATH
echo MAKEVARS="${MAKEVARS[@]}"
echo MAKEOPTS="${MAKEOPTS[@]}"
- echo DISTROMAKETAGS="$DISTROMAKETAGS"
+ echo PLDISTROTAGS="$PLDISTROTAGS"
echo TAGSTAG="$TAGSTAG"
- echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $DISTROMAKETAGS"
- cat $BASE/$DISTROMAKETAGS
+ echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $PLDISTROTAGS"
+ cat $BASE/$PLDISTROTAGS
echo "XXXXXXXXXXXXXXXXXXXX end tags definition"
}
echo " -b BASE - may include @, then replaced with current date"
echo " -u : uses directory given as BASE as is, even if already exists"
echo " -d DISTRO"
- echo " -t DISTROMAKETAGS"
- echo " -r TAGSTAG - a tag that refers to DISTROMAKETAGS - defaults to HEAD"
+ echo " -t PLDISTROTAGS"
+ echo " -r TAGSTAG - a tag that refers to PLDISTROTAGS - defaults to HEAD"
echo " -s MAKEVAR=value - spaces in value are not supported"
echo " -n dry-run : -n passed to make - no mail sent"
echo " -m MAILTO"
b) BASE=$OPTARG ;;
u) USEOLD=true ;;
d) DISTRO=$OPTARG ;;
- t) DISTROMAKETAGS=$OPTARG ;;
+ t) PLDISTROTAGS=$OPTARG ;;
r) TAGSTAG=$OPTARG ;;
s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
fi
BUILD=$ROOT/$BASE
+ if [ -n "$DO_SEND" ] ; then
+ test_sendmail ${BUILD} >> ${BUILD}/log-build.txt 2>&1
+ fi
+
if [ -n "$DO_BUILD" ] ; then
build >> ${BUILD}/log-build.txt 2>&1
touch ${BUILD}.build-ok