Setting tag sliver-openvswitch-2.1.90-2
[build.git] / lbuild-nightly.sh
index 39afca2..9cd7b8f 100755 (executable)
@@ -146,8 +146,8 @@ function pretty_duration () {
 function failure() {
     set -x
     # early stage ? - let's not create /build/@PLDISTRO@
-    if test -z "$WEBLOG" ; then
-       WEBHOST=$(hostname)
+    if  [ -z "$WEBLOG" ] ; then
+       WEBHOST=localhost
        WEBPATH=/tmp
        WEBBASE=/tmp/lbuild-early-$(date +%Y-%m-%d)
        WEBLOG=/tmp/lbuild-early-$(date +%Y-%m-%d).log.txt
@@ -175,8 +175,8 @@ function failure() {
 function success () {
     set -x
     # early stage ? - let's not create /build/@PLDISTRO@
-    if test -z "$WEBLOG" ; then
-       WEBHOST=$(hostname)
+    if [ -z "$WEBLOG" ] ; then
+       WEBHOST=localhost
        WEBPATH=/tmp
        WEBLOG=/tmp/lbuild-early-$(date +%Y-%m-%d).log.txt
     fi
@@ -311,13 +311,16 @@ function run_log () {
     # toss the build in the bargain, so the tests don't need to mess with extracting it
     rsync --verbose --archive $(rootdir $BASE)/build/MODULES/build ${testmaster_ssh}:${BASE}/
 
-    # invoke test on testbox - pass url and build url - so the tests can use vtest-init-lxc.sh
+    # invoke test on testbox - pass url and build url - so the tests can use lbuild-initvm.sh
     run_log_env="-p $PERSONALITY -d $PLDISTRO -f $FCDISTRO"
 
     # temporarily turn off set -e
     set +e
+    trap - ERR INT
     ssh 2>&1 ${testmaster_ssh} ${testdir}/run_log --build ${BUILD_SCM_URL} --url ${url} $run_log_env $RUN_LOG_EXTRAS $VERBOSE --all; retcod=$?
 
+    set -e
+    trap failure ERR INT
     # interpret retcod of TestMain.py; 2 means there were ignored steps that failed
     echo "retcod from run_log" $retcod
     case $retcod in
@@ -326,7 +329,6 @@ function run_log () {
        *) success="";   IGNORED="" ;; 
     esac
 
-    set -e
     # gather logs in the build vm
     mkdir -p $(rootdir $BASE)/build/testlogs
     rsync --verbose --archive ${testmaster_ssh}:$BASE/logs/ $(rootdir $BASE)/build/testlogs
@@ -482,6 +484,7 @@ function usage () {
 function main () {
 
     set -e
+    trap failure ERR INT
 
     # parse arguments
     MAKEVARS=()
@@ -686,7 +689,10 @@ function main () {
            GIT_REPO=$(echo $BUILD_SCM_URL | cut -d@ -f1)
            GIT_TAG=$(echo $BUILD_SCM_URL | cut -s -d@ -f2)
            GIT_TAG=${GIT_TAG:-master}
-           mkdir -p $tmpdir; git archive --remote=$GIT_REPO $GIT_TAG | tar -C $tmpdir -xf -
+           mkdir -p $tmpdir 
+            ( git archive --remote=$GIT_REPO $GIT_TAG | tar -C $tmpdir -xf -) || \
+               ( echo "==================== git archive FAILED, trying git clone instead" ; \
+                 git clone $GIT_REPO $tmpdir && cd $tmpdir && git checkout $GIT_TAG && rm -rf .git)
 
             # Create lxc vm
            cd $tmpdir
@@ -696,7 +702,6 @@ function main () {
            rm -rf $tmpdir
            # Extract build again - in the vm
            [ -n "$SSH_KEY" ] && setupssh ${BASE} ${SSH_KEY}
-           # xxx not working as of now - waiting for Sapan to look into this
            virsh -c lxc:/// lxc-enter-namespace $BASE /bin/bash -c "git clone $GIT_REPO /build; cd /build; git checkout $GIT_TAG"
        fi
        echo "XXXXXXXXXX $COMMAND: preparation of vm $BASE done" $(date)
@@ -735,6 +740,7 @@ function main () {
 
        # publish to the web so run_log can find them
        set +e
+       trap - ERR INT
        webpublish rm -rf $WEBPATH/$BASE 
        # guess if we've been doing any debian-related build
        if [ ! -f $(rootdir $BASE)/etc/debian_version  ] ; then
@@ -753,6 +759,7 @@ function main () {
        release=$(rootdir $BASE)/build/myplc-release
        [ -f $release ] && webpublish_rsync_files $WEBPATH/$BASE $release
        set -e
+       trap failure ERR INT
 
         # create yum repo and sign packages.
        if [ -n "$SIGNYUMREPO" ] ; then