X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vbuild-nightly.sh;h=7ee1aefc4cf517ccb7a3cda45e338622e56d70a6;hb=refs%2Fheads%2Fcoblitz;hp=e03881fec718aa7fe0b0b9c5d9686321b10328c0;hpb=7d6e06080fe9dd33e72358c757ba53f152fd053d;p=build.git diff --git a/vbuild-nightly.sh b/vbuild-nightly.sh index e03881fe..7ee1aefc 100755 --- a/vbuild-nightly.sh +++ b/vbuild-nightly.sh @@ -18,6 +18,8 @@ DEFAULT_GPGPATH="/etc/planetlab" DEFAULT_GPGUID="root@$( /bin/hostname )" DEFAULT_TESTCONFIG="default" +# for passing args to run_log +RUN_LOG_EXTRAS="" # for publishing results, and the tests settings x=$(hostname) @@ -135,7 +137,7 @@ function failure() { webpublish_cp_stdin_to_file $WEBBASE.ko ||: if [ -n "$MAILTO" ] ; then ( \ - echo "Subject: Failures with $MAIL_SUBJECT $BASE on $(hostname)" ; \ + echo "Subject: KO ${BASE} ${MAIL_SUBJECT}" ; \ echo "To: $MAILTO" ; \ echo "See full build log at $WEBBASE_URL/log.txt" ; \ echo "and tail version at $WEBBASE_URL.ko" ; \ @@ -174,7 +176,7 @@ function success () { fi if [ -n "$MAILTO" ] ; then ( \ - echo "Subject: Success with ${MAIL_SUBJECT} ${BASE} on $(hostname)" ; \ + echo "Subject: PASS ${BASE} ${MAIL_SUBJECT}" ; \ echo "To: $MAILTO" ; \ echo "$PLDISTRO ($BASE) build for $FCDISTRO completed on $(date)" ; \ echo "See full build log at $WEBBASE_URL/log.txt" ; \ @@ -216,6 +218,9 @@ function build () { MAKEVARS=("BASE=${BASE}" "${MAKEVARS[@]}") + # initialize latex + /build/latex-first-run.sh || : + # stage1 make -C /build $DRY_RUN "${MAKEVARS[@]}" stage1=true # versions @@ -270,16 +275,12 @@ function run_log () { rsync --verbose --archive /vservers/$BASE/build/MODULES/build ${testmaster_ssh}:${BASE}/ # invoke test on testbox - pass url and build url - so the tests can use vtest-init-vserver.sh - configs="" - for config in ${TESTCONFIG} ; do - configs="$configs --config $config" - done - test_env="-p $PERSONALITY -d $PLDISTRO -f $FCDISTRO" + run_log_env="-p $PERSONALITY -d $PLDISTRO -f $FCDISTRO" # need to proceed despite of set -e success=true # passing the build_scm_url should not be needed anymore - ssh 2>&1 -n ${testmaster_ssh} ${testdir}/run_log --build ${BUILD_SCM_URL} --url ${url} $configs $test_env $VERBOSE --all || success= + ssh 2>&1 -n ${testmaster_ssh} ${testdir}/run_log --build ${BUILD_SCM_URL} --url ${url} $run_log_env $RUN_LOG_EXTRAS $VERBOSE --all || success= # gather logs in the build vserver mkdir -p /vservers/$BASE/build/testlogs @@ -414,11 +415,13 @@ function usage () { echo " -o base: (overwrite) do not re-create vserver, re-use base instead" echo " the -f/-d/-p/-m/-s/-t options are uneffective in this case" echo " -c testconfig - defaults to $DEFAULT_TESTCONFIG" + echo " -y {pl,pg} - passed to run_log" + echo " -x - a hook to pass arguments to run_log" echo " -w webpath - defaults to $DEFAULT_WEBPATH" echo " -W testbuildurl - defaults to $DEFAULT_TESTBUILDURL; this is also used to get the hostname where to publish builds" echo " -r webroot - defaults to $DEFAULT_WEBROOT - the fs point where testbuildurl actually sits" echo " -M testmaster - defaults to $DEFAULT_TESTMASTER" - echo " -y - sign yum repo in webpath" + echo " -Y - sign yum repo in webpath" echo " -g gpg_path - to the gpg secring used to sign rpms. Defaults to $DEFAULT_GPGPATH" echo " -u gpg_uid - email used in secring. Defaults to $DEFAULT_GPGUID" echo " -K svnsshkey - specify key to use when svn+ssh:// URLs are used for SVNPATH" @@ -448,7 +451,7 @@ function main () { SIGNYUMREPO="" OPTS_ORIG=$@ - OPTS=$(getopt -o "f:d:p:m:s:t:b:o:c:w:W:r:M:yg:u:K:SBTnv7i:h" -l "build-branch:" -- $@) + OPTS=$(getopt -o "f:d:p:m:s:t:b:o:c:y:x:w:W:r:M:Yg:u:K:SBTnv7i:h" -l "build-branch:" -- $@) if [ $? != 0 ] then usage @@ -465,11 +468,13 @@ function main () { -b) BASE=$2; shift 2 ;; -o) OVERBASE=$2; shift 2 ;; -c) TESTCONFIG="$TESTCONFIG $2"; shift 2 ;; + -y) RUN_LOG_EXTRAS="$RUN_LOG_EXTRAS -y $2"; shift 2 ;; + -x) RUN_LOG_EXTRAS="$RUN_LOG_EXTRAS $2"; shift 2;; -w) WEBPATH=$2; shift 2 ;; -W) TESTBUILDURL=$2; shift 2 ;; -r) WEBROOT=$2; shift 2 ;; -M) TESTMASTER=$2; shift 2 ;; - -y) SIGNYUMREPO=true; shift ;; + -Y) SIGNYUMREPO=true; shift ;; -g) GPGPATH=$2; shift 2 ;; -u) GPGUID=$2; shift 2 ;; -K) SSH_KEY=$2; shift 2 ;; @@ -516,6 +521,12 @@ function main () { [ -z "$TESTMASTER" ] && TESTMASTER="$DEFAULT_TESTMASTER" [ -n "$DRY_RUN" ] && MAILTO="" + + # elaborate the extra args to be passed to run_log + for config in ${TESTCONFIG} ; do + RUN_LOG_EXTRAS="$RUN_LOG_EXTRAS --config $config" + done + if [ -n "$OVERBASE" ] ; then sedargs="-e s,@DATE@,${DATE},g" @@ -527,17 +538,19 @@ function main () { ### elaborate mail subject if [ -n "$DO_BUILD" -a -n "$DO_TEST" ] ; then - MAIL_SUBJECT="complete" + MAIL_SUBJECT="full" elif [ -n "$DO_BUILD" ] ; then - MAIL_SUBJECT="package-only" + MAIL_SUBJECT="pkg-only" elif [ -n "$DO_TEST" ] ; then MAIL_SUBJECT="test-only" fi if [ -n "$OVERBASE" ] ; then - MAIL_SUBJECT="$MAIL_SUBJECT incremental run on" + MAIL_SUBJECT="${MAIL_SUBJECT} rerun" else - MAIL_SUBJECT="$MAIL_SUBJECT fresh build" + MAIL_SUBJECT="${MAIL_SUBJECT} fresh" fi + short_hostname=$(hostname | cut -d. -f1) + MAIL_SUBJECT="on ${short_hostname} - ${MAIL_SUBJECT}" ### compute WEBHOST from TESTBUILDURL # this is to avoid having to change the builds configs everywhere