oops
[infrastructure.git] / scripts / nightly-build.sh
index 3b234b8..9fd29e3 100755 (executable)
@@ -1,5 +1,5 @@
 #!/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,,' )
 
@@ -11,13 +11,12 @@ CHROOTBINDIR=/root/bin
 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')
@@ -27,6 +26,7 @@ function do_chroot () {
     chroot /plc/devel/root su - build <<EOF
 $CHROOTBINDIR/$COMMAND $@
 EOF
+
 }
 
 # Notify recipient of failure or success, manage various stamps 
@@ -72,6 +72,7 @@ function use_base () {
     fi
 }
 
+
 function build () {
     set -x
     set -e
@@ -83,22 +84,22 @@ function build () {
     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 
+    make stage1=true ${MAKEOPTS[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE 
     # in case we use an older build
     set +e
-    make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE versions
+    make ${MAKEOPTS[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE versions
     set -e
-    make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
+    make ${MAKEOPTS[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
 
     # restore silent mode - otherwise cron gets it
     set +x
@@ -109,16 +110,18 @@ function runtest () {
     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
@@ -127,8 +130,11 @@ function runtest () {
     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
 
@@ -142,10 +148,10 @@ function show_env () {
     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"
 }
 
@@ -156,8 +162,8 @@ function usage () {
     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"
@@ -181,7 +187,7 @@ function main () {
                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) ;;
@@ -211,6 +217,10 @@ function main () {
        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