Update webupdate and webupdate.wrapper scripts to always

install from a clean build directory.

PUBDIR is where the installed files end up for the public
site.  DESTDIR is now suffixed with '-clean', and always
purged before a new build starts.

When the build finishes, rsync populates PUBDIR from the
resulting DESTDIR files.  When doing a full site refresh,
'rsync --delete' is used to purge stale files.

Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Glen Barber 2014-02-18 18:04:03 +00:00
parent 828f628631
commit 8bd14a12f1
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=43978
2 changed files with 14 additions and 2 deletions

View file

@ -17,6 +17,7 @@
# SVNROOT - Path to the FreeBSD SVN repository.
# BUILDDIR - Where the checked out copies of the files are stored.
# DESTDIR - Where the rendered copies should wind up.
# PUBDIR - Where the rendered files are published.
# LOGFILE - Name of the log file to use (in $BUILDDIR).
# BUILDARGS - Arguments to pass to make(1) when {build,install}ing.
# INSTARGS - Arguments to pass to make(1) when installing.
@ -162,6 +163,11 @@ time make ${BUILDARGS} all >> $LOGFILE 2>&1 &&
mail -s "FreeBSD web build failed on `hostname`" $WEBMAILTO;
exit 3) || exit 3;
if [ "X${PUBDIR}" != "X" ]; then
/usr/local/bin/rsync ${RSYNC_FLAGS} ${DESTDIR}/ ${PUBDIR} \
>> ${LOGFILE} 2>&1
fi
# simon@ 20110116 - for now we use newsyslog...
#gzip -f $LOGFILE
#find $LOGDIR -mtime +60 -print0 | perl -n0e unlink

View file

@ -9,11 +9,13 @@
PATH=/bin:/usr/bin:/usr/local/bin
SVNROOT=svn://svn.FreeBSD.org
DESTDIR=/usr/local/www/www.freebsd.org
PUBDIR=/usr/local/www/www.freebsd.org
DESTDIR="${PUBDIR}-clean"
RSYNC_FLAGS="-avH"
PINDEX_OVERRIDE=/usr/ports/INDEX-9
GEN_INDEX=yes
export USER=www-data
export PATH DESTDIR PINDEX_OVERRIDE GEN_INDEX
export PATH DESTDIR PINDEX_OVERRIDE GEN_INDEX PUBDIR
WEBMAILTO=freebsd-doc@FreeBSD.org
export WEBMAILTO
@ -29,6 +31,7 @@ if [ -e $FLAGDIR/fullbuild-clean.flag ]; then
export BUILD_RELNOTES=YES
# TODO - tell webupdate to do clean via env variable
# webupdate will remove flag file
RSYNC_FLAGS="${RSYNC_FLAGS} --delete"
elif [ -e $FLAGDIR/fullbuild-all-lang.flag ]; then
export BUILD_RELNOTES=YES
elif [ -e $FLAGDIR/fullbuild-en.flag ]; then
@ -37,6 +40,7 @@ elif [ -e $FLAGDIR/fullbuild-en.flag ]; then
else
export WEB_ONLY=YES
fi
rm -rf ${DESTDIR}/*
rm -f $FLAGDIR/fullbuild-all-lang.flag $FLAGDIR/fullbuild-en.flag
# 30m
@ -45,6 +49,8 @@ if [ "$1" = "-f" ]; then
LOCKF_WAIT=0
fi
export RSYNC_FLAGS
nice -5 lockf -s -t $LOCKF_WAIT /usr/local/www/build/lock.webupdate \
sh -c "/usr/local/www/bin/webupdate ; \
/usr/sbin/newsyslog -f /home/www/etc/webupdate_newsyslog.conf -Fr -t ''"