git://git.onelab.eu
/
infrastructure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mentions separate installation of PyXML
[infrastructure.git]
/
scripts
/
nightly-build.sh
diff --git
a/scripts/nightly-build.sh
b/scripts/nightly-build.sh
index
9d1629e
..
881187a
100755
(executable)
--- a/
scripts/nightly-build.sh
+++ b/
scripts/nightly-build.sh
@@
-5,24
+5,28
@@
REVISION=$(echo '$Revision$' | sed -e 's,\$,,g' -e 's,^\w*:\s,,' )
COMMAND=$(basename $0)
ROOT=/build
COMMAND=$(basename $0)
ROOT=/build
-CVSROOT=":pserver:anon@cvs.planet-lab.org:/cvs"
+CHROOTBINDIR=/root/bin
+
+# default values, tunable with command-line options
+SVNPATH="svn+ssh://build@svn.one-lab.org/svn/build/trunk"
DISTRO=onelab
DISTRO=onelab
-MAILTO="thierry.parmentelat@sophia.inria.fr"
-TAG=HEAD
-CHROOTDIR=/root/bin
+MAILTO="onelab-build@one-lab.org"
+TAGSFILE=onelab-tags.mk
+####################
# plc chroot runs in UTC
DATE=$(date -u +'%Y.%m.%d')
### in the root context
function do_chroot () {
chroot /plc/devel/root su - build <<EOF
# plc chroot runs in UTC
DATE=$(date -u +'%Y.%m.%d')
### in the root context
function do_chroot () {
chroot /plc/devel/root su - build <<EOF
-$CHROOTDIR/$COMMAND $@
+$CHROOT
BIN
DIR/$COMMAND $@
EOF
}
# Notify recipient of failure
function failure() {
EOF
}
# Notify recipient of failure
function failure() {
+ touch ${BUILD}.broken
if [ -n "$MAILTO" ] ; then
tail -c 8k ${BUILD}/log-build.txt | mail -s "Failures for ${BUILD}" $MAILTO
fi
if [ -n "$MAILTO" ] ; then
tail -c 8k ${BUILD}/log-build.txt | mail -s "Failures for ${BUILD}" $MAILTO
fi
@@
-30,8
+34,9
@@
function failure() {
}
function success () {
}
function success () {
+ touch ${BUILD}.ok
if [ -n "$MAILTO" ] ; then
if [ -n "$MAILTO" ] ; then
-
date
| mail -s "Successfull build in ${BUILD}" $MAILTO
+
(echo "http://build.one-lab.org/$DISTRO/$BASE" ; echo "Completed on $(date)" )
| mail -s "Successfull build in ${BUILD}" $MAILTO
fi
exit 0
}
fi
exit 0
}
@@
-64,13
+69,21
@@
function build () {
echo -n "============================== Starting $COMMAND on "
date
echo -n "============================== Starting $COMMAND on "
date
- show_env
-
cd $ROOT
cd $ROOT
- cvs -d $CVSROOT co -d $BASE build
+ svn co $SVNPATH $BASE
+ # if TAGSTAG specified : update TAGSFILE with this tag
+ if [ -n "$TAGSTAG" ] ; then
+ cd $BASE
+ svn up -r $TAGSTAG $TAGSFILE
+ cd -
+ fi
+
+ show_env
+
echo "Running make IN build $(pwd)"
echo "Running make IN build $(pwd)"
- make ${MAKEOPTS[@]} TAG=${TAG} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
+ make stage1=true ${MAKEOPTS[@]} TAGSFILE=${TAGSFILE} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
+ make ${MAKEOPTS[@]} TAGSFILE=${TAGSFILE} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
# only if successful
rm -f latest
# only if successful
rm -f latest
@@
-81,27
+94,33
@@
function build () {
function show_env () {
echo ROOT=$ROOT
function show_env () {
echo ROOT=$ROOT
- echo BASE=$BASE
- echo TAG=$TAG
echo DISTRO=$DISTRO
echo DISTRO=$DISTRO
+ echo BASE=$BASE
+ echo SVNPATH=$SVNPATH
echo MAKEVARS="${MAKEVARS[@]}"
echo MAKEOPTS="${MAKEOPTS[@]}"
echo MAKEVARS="${MAKEVARS[@]}"
echo MAKEOPTS="${MAKEOPTS[@]}"
+ echo TAGSFILE="$TAGSFILE"
+ echo TAGSTAG="$TAGSTAG"
+ echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $TAGSFILE"
+ cat $BASE/$TAGSFILE
+ echo "XXXXXXXXXXXXXXXXXXXX end tags definition"
}
function usage () {
echo "Usage: $COMMAND [option] make-targets"
echo "This is revision $REVISION"
echo "Supported options"
}
function usage () {
echo "Usage: $COMMAND [option] make-targets"
echo "This is revision $REVISION"
echo "Supported options"
- echo " -v verbose"
- echo " -b BASE"
+ echo " -b BASE - may include @, then replaced with current date"
echo " -u : uses directory given as BASE as is, even if already exists"
echo " -e : exits (does nothing) if BASE already exists"
echo " -u : uses directory given as BASE as is, even if already exists"
echo " -e : exits (does nothing) if BASE already exists"
- echo " -f DISTRO"
- echo " -d CVSROOT"
- echo " -r TAG"
- echo " -m MAILTO"
+ echo " -d DISTRO"
+ echo " -t TAGSFILE"
+ echo " -r TAGSTAG - a tag that refers to TAGSFILE - defaults to HEAD"
echo " -s MAKEVAR=value - spaces in value are not supported"
echo " -n passed to make"
echo " -s MAKEVAR=value - spaces in value are not supported"
echo " -n passed to make"
+ echo " -v verbose"
+ echo " -m MAILTO"
+ echo " -s SVNPATH"
exit 1
}
exit 1
}
@@
-110,33
+129,35
@@
function main () {
if [ -d /plc/devel/data ] ; then
do_chroot "$@"
else
if [ -d /plc/devel/data ] ; then
do_chroot "$@"
else
- while getopts "vd:r:m:f:b:s:uenh" opt ; do
MAKEVARS=()
MAKEOPTS=()
MAKEVARS=()
MAKEOPTS=()
+ while getopts "b:ued:t:r:B:s:nvm:s:h" opt ; do
case $opt in
case $opt in
- v) set -x ;;
- d) CVSROOT=$OPTARG ;;
- r) TAG=$OPTARG ;;
- m) MAILTO=$OPTARG ;;
- f) DISTRO=$OPTARG ;;
b) BASE=$OPTARG ;;
u) USEOLD=true ;;
e) EXITIFOLD=true ;;
b) BASE=$OPTARG ;;
u) USEOLD=true ;;
e) EXITIFOLD=true ;;
+ d) DISTRO=$OPTARG ;;
+ t) TAGSFILE=$OPTARG ;;
+ r) TAGSTAG=$OPTARG ;;
s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
+ v) set -x ;;
+ m) MAILTO=$OPTARG ;;
+ s) SVNPATH=$OPTARG ;;
h|*) usage ;;
esac
done
h|*) usage ;;
esac
done
- ROOT=$ROOT/$DISTRO
-
shift $(($OPTIND - 1))
shift $(($OPTIND - 1))
+ ROOT=$ROOT/$DISTRO
+ cd $ROOT
+
MAKETARGETS="$@"
MAKETARGETS="$@"
- cd $ROOT
- ### set BASE if unspecified, from TAG
- [ -z "$BASE" ] && BASE=${TAG/HEAD/${DATE}}
+ ### set BASE from DISTRO, if unspecified
+ [ -z "$BASE" ] && BASE=${DISTRO}
+ BASE=$(echo ${BASE} | sed -e "s,@,${DATE},g")
if [ -n "$EXITIFOLD" -a -d "$BASE" ] ; then
echo "$COMMAND: -e : exits on existing base directory $BASE"
if [ -n "$EXITIFOLD" -a -d "$BASE" ] ; then
echo "$COMMAND: -e : exits on existing base directory $BASE"
@@
-148,10
+169,6
@@
function main () {
if [ -n "$USEOLD" ] ; then
use_base $BASE
else
if [ -n "$USEOLD" ] ; then
use_base $BASE
else
- # base is not the date, it's probably a tag or whatever
- if [ "$BASE" != "$DATE" ] ; then
- [ -d "$BASE" ] && BASE=${BASE}-${DATE}
- fi
create_base
fi
BUILD=$ROOT/$BASE
create_base
fi
BUILD=$ROOT/$BASE