turn off f12/k22 builds
[infrastructure.git] / scripts / nightly-build.sh
index 9715a1b..9512f25 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,,' )
 
@@ -8,16 +8,15 @@ ROOT=/build
 CHROOTBINDIR=/root/bin
 
 # default values, tunable with command-line options
-SVNPATH="svn+ssh://build@svn.one-lab.org/svn/build/trunk"
+SVNPATH="svn+ssh://build@svn.onelab.eu/svn/build/trunk"
 DISTRO=onelab
-MAILTO="onelab-build@one-lab.org"
-TAGSFILE=onelab-tags.mk
-
-TESTBUILDURL="http://build.one-lab.org/"
+MAILTO="onelab-build@onelab.eu"
+PLDISTROTAGS=onelab-tags.mk
+TESTBUILDURL="http://build.onelab.eu/"
+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"
+TESTSVNPATH="svn+ssh://build@svn.onelab.eu/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 
@@ -43,7 +43,7 @@ function success () {
     set -x
     touch ${BUILD}.ok
     if [ -n "$MAILTO" ] ; then
-       (echo "http://build.one-lab.org/$DISTRO/$BASE" ; echo "Completed on $(date)" ) | mail -s "Successfull build in ${BUILD}" $MAILTO
+       (echo "http://build.onelab.eu/$DISTRO/$BASE" ; echo "Completed on $(date)" ) | mail -s "Successfull build in ${BUILD}" $MAILTO
     fi
     cd ${ROOT}
     rm -f latest
@@ -72,6 +72,7 @@ function use_base () {
     fi
 }
 
+
 function build () {
     set -x
     set -e
@@ -83,18 +84,25 @@ function build () {
     cd $ROOT
     svn co $SVNPATH $BASE
 
-  # if TAGSTAG specified : update TAGSFILE with this tag
+  # if TAGSTAG specified : update PLDISTROTAGS with this tag
     if [ -n "$TAGSTAG" ] ; then
        cd $BASE
-       svn up -r $TAGSTAG $TAGSFILE
+       svn up -r $TAGSTAG $PLDISTROTAGS
        cd -
     fi
 
     show_env
     
     echo "Running make IN build $(pwd)"
-    make stage1=true ${MAKEOPTS[@]} TAGSFILE=${TAGSFILE} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
-    make ${MAKEOPTS[@]} TAGSFILE=${TAGSFILE} 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
 }
 
 function runtest () {
@@ -102,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
@@ -120,10 +130,15 @@ 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
+
+    set +x
 }
 
 function show_env () {
@@ -133,10 +148,10 @@ function show_env () {
     echo SVNPATH=$SVNPATH
     echo MAKEVARS="${MAKEVARS[@]}"
     echo MAKEOPTS="${MAKEOPTS[@]}"
-    echo TAGSFILE="$TAGSFILE"
+    echo PLDISTROTAGS="$PLDISTROTAGS"
     echo TAGSTAG="$TAGSTAG"
-    echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $TAGSFILE"
-    cat $BASE/$TAGSFILE
+    echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $PLDISTROTAGS"
+    cat $BASE/$PLDISTROTAGS
     echo "XXXXXXXXXXXXXXXXXXXX end tags definition"
 }
 
@@ -147,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 TAGSFILE"
-    echo " -r TAGSTAG - a tag that refers to TAGSFILE - 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"
@@ -172,7 +187,7 @@ function main () {
                b) BASE=$OPTARG ;;
                u) USEOLD=true ;;
                d) DISTRO=$OPTARG ;;
-               t) TAGSFILE=$OPTARG ;;
+               t) PLDISTROTAGS=$OPTARG ;;
                r) TAGSTAG=$OPTARG ;;
                s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
                n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
@@ -202,13 +217,17 @@ 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
        fi
        
        if [ -n "$DO_TEST" ] ; then 
            runtest ${BUILD} >> ${BUILD}/log-build.txt 2>&1 
-           touch ${BUILD}.build-ok
        fi
        
        success >> ${BUILD}/log-build.txt 2>&1