3 # PlanetLab release build script. Intended to be used by scripts and
4 # crontabs to build nightly releases (default). Can also be invoked
5 # manually to build a tagged release (-r) in the current directory.
7 # $Id: build.sh,v 1.5 2004/06/09 14:46:04 mlh-pl_rpm Exp $
11 CVSROOT=bui-pl_rpm@cvs.planet-lab.org:/cvs
16 # Alpha node repository
17 ALPHA_BOOT=build@boot.planet-lab.org
18 ALPHA_ROOT=/www/planetlab/install-rpms/archive/planetlab-alpha
19 ALPHA_RPMS=/www/planetlab/install-rpms/planetlab-alpha
21 # Export certain variables
25 while getopts "d:r:" opt ; do
34 echo "usage: `basename $0` [-d $CVSROOT] [-r $TAG]"
40 # Create a unique build base
41 BASE=${TAG/HEAD/`date +%Y.%m.%d`}
43 while ! mkdir ${BASE}${i} 2>/dev/null ; do
44 [ -z ${i} ] && BASE=${BASE}.
46 if [ $i -gt 100 ] ; then
47 echo "$0: Failed to create release directory `pwd`/${BASE}${i}"
55 cvs -d ${CVSROOT} export -r ${TAG} -d ${BASE} ${MODULE}
59 if [ $? -ne 0 ] ; then
61 if [ -f ${BASE}/log ] ; then
66 elif [ "$TAG" = "HEAD" ] ; then
67 # Update alpha node repository
68 for i in RPMS SRPMS ; do
69 ssh ${ALPHA_BOOT} mkdir -p ${ALPHA_ROOT}/${BASE}/${i}
70 find ${BASE}/${i} -type f | xargs -i scp {} ${ALPHA_BOOT}:${ALPHA_ROOT}/${BASE}/${i}
71 ssh ${ALPHA_BOOT} yum-arch ${ALPHA_ROOT}/${BASE}/${i}
74 ssh ${ALPHA_BOOT} ln -nsf ${ALPHA_ROOT}/${BASE}/RPMS/ ${ALPHA_RPMS}