From a6a5c2b6f90161058700f777ada4483dadde918e Mon Sep 17 00:00:00 2001 From: thierry Date: Sun, 11 Nov 2007 22:27:43 +0000 Subject: [PATCH] renames variables for more consistecy - review defaults - BASE can use @ for date, % for FCDISTRO and = for PLDISTRO --- scripts/nightly-build-vserver.sh | 123 +++++++++++++++++-------------- scripts/nightly-build.sh | 24 +++--- 2 files changed, 81 insertions(+), 66 deletions(-) diff --git a/scripts/nightly-build-vserver.sh b/scripts/nightly-build-vserver.sh index a630762..5861db5 100755 --- a/scripts/nightly-build-vserver.sh +++ b/scripts/nightly-build-vserver.sh @@ -5,11 +5,13 @@ COMMANDPATH=$0 COMMAND=$(basename $0) # default values, tunable with command-line options -DEFAULT_FC_DISTRO=fc6 -SVNPATH="http://svn.one-lab.org/build/trunk" -DISTRO=onelab -MAILTO="onelab-build@one-lab.org" -DISTROMAKETAGS=onelab-tags.mk +DEFAULT_FCDISTRO=fc6 +DEFAULT_PLDISTRO=onelab +DEFAULT_BASE="@--=-%" +DEFAULT_SVNPATH="http://svn.one-lab.org/build/trunk" + +DEFAULT_MAILTO_planetlab="devel@planet-lab.org" +DEFAULT_MAILTO_onelab="onelab-build@one-lab.org" # web publishing results WEBPATH=/build/@DISTRO@/@BUILD@ @@ -39,7 +41,7 @@ function success () { set -x touch $(dirname $LOG)/build-ok.txt if [ -n "$MAILTO" ] ; then - (echo "http://build.one-lab.org/$DISTRO/$BASE" ; echo "Completed on $(date)" ) | mail -s "Successfull build for ${BASE}" $MAILTO + (echo "http://build.one-lab.org/$PLDISTRO/$BASE" ; echo "Completed on $(date)" ) | mail -s "Successfull build for ${BASE}" $MAILTO fi exit 0 } @@ -55,22 +57,22 @@ function build () { cd / # svn checkout $SVNPATH $BASE - # if TAGSRELEASE specified : update DISTROMAKETAGS with this tag + # if TAGSRELEASE specified : update PLDISTROTAGS with this tag if [ -n "$TAGSRELEASE" ] ; then cd build - svn up -r $TAGSRELEASE $DISTROMAKETAGS + svn up -r $TAGSRELEASE $PLDISTROTAGS cd - > /dev/null fi show_env echo "Running make IN $(pwd)" - make stage1=true "${MAKEOPTS[@]}" DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} "${MAKEVARS[@]}" -C /build + make stage1=true "${MAKEOPTS[@]}" PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${PLDISTRO} "${MAKEVARS[@]}" -C /build # in case we use an older build set +e - make "${MAKEOPTS[@]}" DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} "${MAKEVARS[@]}" -C /build versions + make "${MAKEOPTS[@]}" PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${PLDISTRO} "${MAKEVARS[@]}" -C /build versions set -e - make "${MAKEOPTS[@]}" DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} "${MAKEVARS[@]}" -C /build $MAKETARGETS + make "${MAKEOPTS[@]}" PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${PLDISTRO} "${MAKEVARS[@]}" -C /build $MAKETARGETS # restore silent mode - otherwise cron gets it set +x @@ -87,7 +89,7 @@ function runtest () { ### compute URL to the myplc package cd /build rpm=$(find RPMS -name myplc\*.rpm ) - url=${TESTBUILDURL}${DISTRO}/${BASE}/${rpm} + url=${TESTBUILDURL}${PLDISTRO}/${BASE}/${rpm} ### checkout the test material svn co ${TESTSVNPATH} plctest # compute test directory name on test box @@ -109,37 +111,38 @@ function runtest () { function show_env () { # echo ROOT=$ROOT - echo FC_DISTRO=$FC_DISTRO - echo DISTRO=$DISTRO + echo FCDISTRO=$FCDISTRO + echo PLDISTRO=$PLDISTRO echo BASE=$BASE echo SVNPATH=$SVNPATH echo MAKEVARS="${MAKEVARS[@]}" echo MAKEOPTS="${MAKEOPTS[@]}" - echo DISTROMAKETAGS="$DISTROMAKETAGS" + echo PLDISTROTAGS="$PLDISTROTAGS" echo TAGSRELEASE="$TAGSRELEASE" - if [ -f /build/$DISTROMAKETAGS ] ; then - echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $DISTROMAKETAGS" - cat /build/$DISTROMAKETAGS + if [ -f /build/$PLDISTROTAGS ] ; then + echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $PLDISTROTAGS" + cat /build/$PLDISTROTAGS else - echo "no tags definition yet - probably out of vserver" + echo "no tags definition - normal if outside of the vserver" fi echo "XXXXXXXXXXXXXXXXXXXX end tags definition" } function usage () { echo "Usage: $COMMAND [option] make-targets" - echo "This is revision $REVISION" + echo "This is $REVISION" echo "Supported options" - echo " -n dry-run : -n passed to make - no mail sent" - echo " -d PLDISTRO" - echo " -b BASE - may include @, then replaced with current date" - echo " -t PLDISTROMAKETAGS" - echo " -r TAGSRELEASE - a release number that refers to PLDISTROMAKETAGS - defaults to HEAD" + echo " -n dry-run : -n passed to make - vserver gets created though - no mail sent" + echo " -f FCDISTRO - defaults to $DEFAULT_FCDISTRO" + echo " -d PLDISTRO - defaults to $DEFAULT_PLDISTRO" + echo " -b BASE - defaults to $DEFAULT_BASE" + echo " may include @ (replaced with date), % (fcdistro) or = (pldistro)" + echo " -t PLDISTROTAGS - defaults to \${PLDISTRO}-tags.mk" + echo " -r TAGSRELEASE - a release number that refers to PLDISTROTAGS - defaults to HEAD" echo " -s SVNPATH - where to fetch the build module" - echo " -f FC_DISTRO - defaults to $DEFAULT_FC_DISTRO" - echo " -u : uses directory given as BASE as is, even if already exists" - echo " -s MAKEVAR=value" + echo " -o : overwrite - re-run in base directory, do not create vserver" echo " -m MAILTO" + echo " -a MAKEVAR=value - space in values are not supported" echo " -B : run build only" echo " -T : run test only" exit 1 @@ -158,18 +161,18 @@ function main () { MAKEOPTS=() DO_BUILD=true DO_TEST=true - while getopts "f:b:ud:t:r:s:nm:s:BTh" opt ; do + while getopts "nf:d:b:t:r:s:om:a:BTh" opt ; do case $opt in - f) FC_DISTRO=$OPTARG ;; + n) DRY_RUN="true" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;; + f) FCDISTRO=$OPTARG ;; + d) PLDISTRO=$OPTARG ;; b) BASE=$OPTARG ;; - u) USEOLD=true ;; - d) DISTRO=$OPTARG ;; - t) DISTROMAKETAGS=$OPTARG ;; + t) PLDISTROTAGS=$OPTARG ;; r) TAGSRELEASE=$OPTARG ;; - s) MAKEVARS=(${MAKEVARS[@]} "$OPTARG") ;; - n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;; - m) MAILTO=$OPTARG ;; s) SVNPATH=$OPTARG ;; + o) USEOLD=true ;; + m) MAILTO=$OPTARG ;; + a) MAKEVARS=(${MAKEVARS[@]} "$OPTARG") ;; B) DO_TEST= ;; T) DO_BUILD= ; USEOLD=true ;; h|*) usage ;; @@ -177,14 +180,25 @@ function main () { done shift $(($OPTIND - 1)) - - [ -z "$FC_DISTRO" ] && FC_DISTRO=$DEFAULT_FC_DISTRO MAKETARGETS="$@" + + # set defaults + [ -z "$FCDISTRO" ] && FCDISTRO=$DEFAULT_FCDISTRO + [ -z "$PLDISTRO" ] && PLDISTRO=$DEFAULT_PLDISTRO + [ -z "$PLDISTROTAGS" ] && PLDISTROTAGS="${PLDISTRO}-tags.mk" + [ -z "$BASE" ] && BASE="$DEFAULT_BASE" + [ -z "$SVNPATH" ] && SVNPATH="$DEFAULT_SVNPATH" + # + if [ "$PLDISTRO" = "onelab" ] ; then + [ -z "$MAILTO" ] && MAILTO="$DEFAULT_MAILTO_onelab" + else + [ -z "$MAILTO" ] && MAILTO="$DEFAULT_MAILTO_planetlab" + fi + [ -n "$DRY_RUN" ] && MAILTO="" ### set BASE from DISTRO, if unspecified - [ -z "$BASE" ] && BASE=${DISTRO}-${FC_DISTRO} - BASE=$(echo ${BASE} | sed -e "s,@,${DATE},g") - + BASE=$(echo ${BASE} | sed -e "s,@,${DATE},g" -e "s,%,${FCDISTRO},g" -e "s,=,${PLDISTRO},g") + if [ -d /vservers ] ; then # we run in the root context : # (*) create or check for the vserver to use @@ -197,12 +211,12 @@ function main () { echo $COMMAND : cannot find vserver $BASE exit 1 fi - # update build - LOG=/vservers/${BASE}/build/build-log.txt - mkdir -p $(dirname $LOG) - # redirect stdout and stderr from now on + # manage LOG + LOG=/vservers/${BASE}-log.txt exec > $LOG 2>&1 echo "XXXXXXXXXX $COMMAND: using existing vserver $BASE" $(date) + show_env + # update build vserver ${BASE} exec svn update /build else # create vserver: check it does not exist yet @@ -217,26 +231,27 @@ function main () { fi done BASE=${BASE}${i} + # manage LOG LOG=/vservers/${BASE}-log.txt - mkdir -p $(dirname $LOG) - # redirect stdout and stderr from now on exec > $LOG 2>&1 echo "XXXXXXXXXX $COMMAND: creating vserver $BASE" $(date) show_env ### extract vbuild-init-vserver.sh and run it svn cat $SVNPATH/vbuild-init-vserver.sh > /tmp/vbuild-$$ - svn cat $SVNPATH/${DISTRO}-devel.lst > /tmp/${DISTRO}-devel.lst + svn cat $SVNPATH/${PLDISTRO}-devel.lst > /tmp/${PLDISTRO}-devel.lst # Create vserver cd /tmp chmod +x vbuild-$$ - /tmp/vbuild-$$ ${BASE} ${FC_DISTRO} ${DISTRO} + /tmp/vbuild-$$ ${BASE} ${FCDISTRO} ${PLDISTRO} cd - # Extract build vserver ${BASE} exec svn checkout ${SVNPATH} /build - # redirect log again - LOG=/vservers/${BASE}/build/build-log.txt - exec > $LOG 2>&1 fi + # The log inside the vserver contains everything + LOG2=/vservers/${BASE}/build/build-log.txt + (echo "==================== Transcript of vserver creation" ; cat $LOG ; echo "==================== End of vserver creation") >> $LOG2 + # redirect log again + exec >> $LOG2 2>&1 echo "XXXXXXXXXX $COMMAND: preparation of vserver $BASE done" $(date) cp $COMMANDPATH /vservers/${BASE}/ @@ -244,8 +259,8 @@ function main () { vserver ${BASE} exec /$COMMAND "${argv[@]}" # publish - webpath=$(echo $WEBPATH | sed -e s,@DISTRO@,"$DISTRO",g -e s,@BUILD@,"$BASE",g) - weblog=$(echo $WEBLOG | sed -e s,@DISTRO@,"$DISTRO",g -e s,@BUILD@,"$BASE",g) + webpath=$(echo $WEBPATH | sed -e s,@DISTRO@,"$PLDISTRO",g -e s,@BUILD@,"$BASE",g) + weblog=$(echo $WEBLOG | sed -e s,@DISTRO@,"$PLDISTRO",g -e s,@BUILD@,"$BASE",g) rm -f $webpath ln -s /vservers/$BASE/build $webpath rm -f $weblog diff --git a/scripts/nightly-build.sh b/scripts/nightly-build.sh index dd1575e..6af26a4 100755 --- a/scripts/nightly-build.sh +++ b/scripts/nightly-build.sh @@ -11,7 +11,7 @@ CHROOTBINDIR=/root/bin SVNPATH="svn+ssh://build@svn.one-lab.org/svn/build/trunk" DISTRO=onelab MAILTO="onelab-build@one-lab.org" -DISTROMAKETAGS=onelab-tags.mk +PLDISTROTAGS=onelab-tags.mk PLEBOX=root@planet-lab.eu TESTBUILDURL="http://build.one-lab.org/" TESTBOX=onelab-test.inria.fr @@ -86,22 +86,22 @@ function build () { cd $ROOT svn co $SVNPATH $BASE - # if TAGSTAG specified : update DISTROMAKETAGS with this tag + # if TAGSTAG specified : update PLDISTROTAGS with this tag if [ -n "$TAGSTAG" ] ; then cd $BASE - svn up -r $TAGSTAG $DISTROMAKETAGS + svn up -r $TAGSTAG $PLDISTROTAGS 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[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE # in case we use an older build set +e - make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE versions + make ${MAKEOPTS[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE versions set -e - make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS + make ${MAKEOPTS[@]} PLDISTROTAGS=${PLDISTROTAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS # restore silent mode - otherwise cron gets it set +x @@ -152,10 +152,10 @@ function show_env () { echo SVNPATH=$SVNPATH echo MAKEVARS="${MAKEVARS[@]}" echo MAKEOPTS="${MAKEOPTS[@]}" - echo DISTROMAKETAGS="$DISTROMAKETAGS" + echo PLDISTROTAGS="$PLDISTROTAGS" echo TAGSTAG="$TAGSTAG" - echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $DISTROMAKETAGS" - cat $BASE/$DISTROMAKETAGS + echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $PLDISTROTAGS" + cat $BASE/$PLDISTROTAGS echo "XXXXXXXXXXXXXXXXXXXX end tags definition" } @@ -166,8 +166,8 @@ function usage () { echo " -b BASE - may include @, then replaced with current date" echo " -u : uses directory given as BASE as is, even if already exists" echo " -d DISTRO" - echo " -t DISTROMAKETAGS" - echo " -r TAGSTAG - a tag that refers to DISTROMAKETAGS - defaults to HEAD" + echo " -t PLDISTROTAGS" + echo " -r TAGSTAG - a tag that refers to PLDISTROTAGS - defaults to HEAD" echo " -s MAKEVAR=value - spaces in value are not supported" echo " -n dry-run : -n passed to make - no mail sent" echo " -m MAILTO" @@ -191,7 +191,7 @@ function main () { b) BASE=$OPTARG ;; u) USEOLD=true ;; d) DISTRO=$OPTARG ;; - t) DISTROMAKETAGS=$OPTARG ;; + t) PLDISTROTAGS=$OPTARG ;; r) TAGSTAG=$OPTARG ;; s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;; n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;; -- 2.47.0