# Notify recipient of failure or success, manage various stamps
function failure() {
set -x
- (echo -n "============================== $COMMAND: failure at" ; date ; tail -c 20k ${BUILD}/log-build.txt) >> ${BUILD}.broken
+ (echo -n "============================== $COMMAND: failure at" ; date ; tail -c 20k /log-build.txt) >> /build.broken
if [ -n "$MAILTO" ] ; then
- tail -c 8k ${BUILD}/log-build.txt | mail -s "Failures for ${BUILD}" $MAILTO
+ tail -c 8k /log-build.txt | mail -s "Failures for ${BASE}" $MAILTO
fi
exit 1
}
function success () {
set -x
- touch ${BUILD}.ok
+ 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.one-lab.org/$DISTRO/$BASE" ; echo "Completed on $(date)" ) | mail -s "Successfull build for ${BASE}" $MAILTO
fi
- cd ${ROOT}
- rm -f latest
- ln -s $BASE latest
+# cd ${ROOT}
+# rm -f latest
+# ln -s $BASE latest
exit 0
}
echo -n "============================== Starting $COMMAND:build on "
date
- cd $ROOT
- svn co $SVNPATH $BASE
+ cd /
+# svn checkout $SVNPATH $BASE
# if TAGSRELEASE specified : update DISTROMAKETAGS with this tag
if [ -n "$TAGSRELEASE" ] ; then
- cd $BASE
+ cd build
svn up -r $TAGSRELEASE $DISTROMAKETAGS
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[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C /build
# in case we use an older build
set +e
- make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE versions
+ make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C /build versions
set -e
- make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
+ make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C /build $MAKETARGETS
# restore silent mode - otherwise cron gets it
set +x
echo DISTROMAKETAGS="$DISTROMAKETAGS"
echo TAGSRELEASE="$TAGSRELEASE"
echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $DISTROMAKETAGS"
- cat $BASE/$DISTROMAKETAGS
+ cat /build/$DISTROMAKETAGS
echo "XXXXXXXXXXXXXXXXXXXX end tags definition"
}
exit 1
fi
# update build
- vserver ${BASE} exec svn update /build
+ LOG=/vservers/${BASE}.log
+ echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX using existing base $BASE" $(date) >> $LOG 2>&1
+ vserver ${BASE} exec svn update /build >> $LOG 2>&1
else
# create vserver: check it does not exist yet
i=
fi
done
BASE=${BASE}${i}
+ LOG=/vservers/${BASE}.log
+ echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX creating base $BASE" $(date) >> $LOG 2>&1
### extract vbuild.setup and run it
- svn cat $SVNPATH/vbuild.setup /tmp/vbuild-$$
- svn cat $SVNPATH/${DISTRO}-devel.lst /tmp/${DISTRO}-devel.lst
+ svn cat $SVNPATH/vbuild.setup > /tmp/vbuild-$$ >> $LOG 2>&1
+ svn cat $SVNPATH/${DISTRO}-devel.lst > /tmp/${DISTRO}-devel.lst >> $LOG 2>&1
# Create vserver
cd /tmp
- /tmp/vbuild-$$ ${BASE} ${FC_DISTRO} ${DISTRO}-devel
+ chmod +x vbuild-$$
+ /tmp/vbuild-$$ ${BASE} ${FC_DISTRO} ${DISTRO}-devel >> $LOG 2>&1
cd -
# Extract build
- vserver ${BASE} exec svn checkout ${SVNPATH} /build
+ vserver ${BASE} exec svn checkout ${SVNPATH} /build >> $LOG 2>&1
fi
- cp $COMMANDPATH /vservers/${BASE}
+ cp $COMMANDPATH /vservers/${BASE}/
# invoke this command in the vserver
- vserver ${BASE} exec /$COMMAND "$@"
+ echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX preparation of vserver $BASE done" $(date)
+ vserver ${BASE} exec /$COMMAND "$@" >> $LOG 2>&1
else
if [ -n "$DO_BUILD" ] ; then
- build >> /log-build.txt 2>&1
+ build
touch /build-ok
fi
- if [ -n "$DO_TEST" ] ; then
- runtest ${BUILD} >> ${BUILD}/log-build.txt 2>&1
- fi
+ # does not work yet
+ #if [ -n "$DO_TEST" ] ; then
+ #runtest ${BUILD}
+ #fi
- success >> ${BUILD}/log-build.txt 2>&1
+ success
fi