DEFAULT_BASE="@DATE@--@PLDISTRO@-@FCDISTRO@"
DEFAULT_SVNPATH="http://svn.planet-lab.org/svn/build/trunk"
-DEFAULT_MAILTO_onelab="onelab-build@one-lab.org"
-# tmp - send all mails to onelab
-#DEFAULT_MAILTO_planetlab="devel@planet-lab.org"
-DEFAULT_MAILTO_planetlab=$DEFAULT_MAILTO_onelab
+# NOTE: do not think we want to put email addresses into scripts
+# that can be harvested by spambots. --mef
+DEFAULT_MAILTO="onelab-build@one-lab.org"
# web publishing results
DEFAULT_WEBPATH="/build/@PLDISTRO@/"
TESTSCRIPT=TestMain.py
####################
# assuming vserver runs in UTC
-DATE=$(date -u +'%Y.%m.%d')
+DATE=$(date +'%Y.%m.%d')
+
+# temporary - wrap a quick summary of suspicious stuff
+# this is to focus on installation that go wrong
+# use with care, a *lot* of other things can go bad as well
+function summary () {
+ from=$1; shift
+ echo "******************** BEG SUMMARY"
+ tr -d '\r' < $from | egrep 'BEG RPM|not installed|Installing:.*([eE]rror|[wW]arning)'
+ echo "******************** END SUMMARY"
+}
+
# Notify recipient of failure or success, manage various stamps
function failure() {
set -x
+ WEBLOG=${WEBPATH}/${BASE}.log.txt
+ cp $LOG ${WEBLOG}
+ summary $LOG >> ${WEBLOG}
+ (echo -n "============================== $COMMAND: failure at " ; date ; tail -c 20k $WEBLOG) > ${WEBLOG}.ko
if [ -n "$MAILTO" ] ; then
- tail -c 8k $LOG | mail -s "Failures for build ${BASE}" $MAILTO
+ tail -c 20k ${WEBPATH}/${BASE}.log.txt | mail -s "Failures for build ${BASE}" $MAILTO
fi
- cp $LOG ${WEBPATH}/${BASE}.log.txt
- (echo -n "============================== $COMMAND: failure at" ; date ; tail -c 20k $LOG) > ${WEBPATH}/${BASE}.bko.txt
exit 1
}
function success () {
set -x
+ WEBLOG=${WEBPATH}/${BASE}.log.txt
+ cp $LOG ${WEBLOG}
+ summary $LOG >> ${WEBLOG}
+ touch ${WEBLOG}.ok
if [ -n "$MAILTO" ] ; then
- (echo "http://build.one-lab.org/$PLDISTRO/$BASE" ; echo "Completed on $(date)" ) | mail -s "Successfull build for ${BASE}" $MAILTO
+ (echo "$PLDISTRO ($BASE) build for $FCDISTRO completed on $(date)" ) | mail -s "Successfull build for ${BASE}" $MAILTO
fi
- cp $LOG ${WEBPATH}/${BASE}.log.txt
- touch ${WEBPATH}/${BASE}.bok.txt
exit 0
}
[ -z "$BASE" ] && BASE="$DEFAULT_BASE"
[ -z "$WEBPATH" ] && WEBPATH="$DEFAULT_WEBPATH"
[ -z "$SVNPATH" ] && SVNPATH="$DEFAULT_SVNPATH"
- #
+
+ # NOTE: suggest that by default no email is sent and that the user
+ # should explicitly invoke this script with the -m arg to pass in
+ # the appropriate email address. --mef
if [ "$PLDISTRO" = "onelab" ] ; then
- [ -z "$MAILTO" ] && MAILTO="$DEFAULT_MAILTO_onelab"
- else
- [ -z "$MAILTO" ] && MAILTO="$DEFAULT_MAILTO_planetlab"
+ [ -z "$MAILTO" ] && MAILTO="$DEFAULT_MAILTO"
fi
[ -n "$DRY_RUN" ] && MAILTO=""
# The log inside the vserver contains everything
LOG2=/vservers/${BASE}/log.txt
- (echo "==================== Transcript of vserver creation -- BEG $(date)" ; \
+ (echo "==================== BEG VSERVER Transcript of vserver creation" ; \
cat $LOG ; \
- echo "==================== Transcript of vserver creation -- END $(date)" ; \
+ echo "==================== END VSERVER Transcript of vserver creation" ; \
echo "xxxxxxxxxx Messing with logs, symlinking $LOG2 to $LOG" ) >> $LOG2
### not too nice : nuke the former log, symlink it to the new one
rm $LOG; ln -s $LOG2 $LOG
cp $COMMANDPATH /vservers/${BASE}/build/
# invoke this command in the vserver for building (-T)
+ vserver ${BASE} exec chmod +x /build/$COMMAND
vserver ${BASE} exec /build/$COMMAND "${argv[@]}" -b "${BASE}"
fi