X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lbuild-nightly.sh;h=ac37e6997e674fefe9ac1785d47c904448cbb118;hb=07b4eac09c0f064a353431a5aebc941e1d4157f7;hp=8f59ca0fc0eac17cb243b50670671da74ae11802;hpb=c8b5e59557c902508c3e4a2db69702fe7d313b39;p=build.git diff --git a/lbuild-nightly.sh b/lbuild-nightly.sh index 8f59ca0f..ac37e699 100755 --- a/lbuild-nightly.sh +++ b/lbuild-nightly.sh @@ -135,17 +135,24 @@ EOF ### we might build on a box other than the actual web server # utilities for handling the pushed material (rpms, logfiles, ...) -function webpublish_misses_dir () { ssh root@${WEBHOST} "bash -c \"test \! -d $1\"" ; } -function webpublish () { ssh root@${WEBHOST} "$@" ; } -function webpublish_cp_local_to_remote () { scp $1 root@${WEBHOST}:$2 ; } -function webpublish_cp_stdin_to_file () { ssh root@${WEBHOST} cat \> $1; } -function webpublish_append_stdin_to_file () { ssh root@${WEBHOST} cat \>\> $1; } -# provide remote dir as first argument, so any number of local files can be passed next -function webpublish_rsync_dir () { rsync --archive --delete $VERBOSE $2 root@${WEBHOST}:$1 ; } -function webpublish_rsync_files () { - remote="$1"; shift - rsync --archive $VERBOSE "$@" root@${WEBHOST}:"$remote" ; +function webpublish_misses_dir () { + ssh root@${WEBHOST} "bash -c \"test \! -d $1\"" } +function webpublish () { + ssh root@${WEBHOST} "$@" +} +function webpublish_cp_stdin_to_file () { + ssh root@${WEBHOST} cat \> $1 \; chmod g+r,o+r $1 +} +function webpublish_append_stdin_to_file () { + ssh root@${WEBHOST} cat \>\> $1 \; chmod g+r,o+r $1 +} +# provide remote dir as first argument, +# so any number of local files can be passed next +function webpublish_rsync () { + local remote="$1"; shift + rsync --archive --delete $VERBOSE "$@" root@${WEBHOST}:"$remote" + } function pretty_duration () { total_seconds=$1; shift @@ -169,7 +176,7 @@ function failure() { WEBLOG=/tmp/lbuild-early-$(date +%Y-%m-%d).log.txt fi webpublish mkdir -p $WEBBASE ||: - webpublish_cp_local_to_remote $LOG $WEBLOG ||: + webpublish_rsync $WEBLOG $LOG ||: summary $LOG | webpublish_append_stdin_to_file $WEBLOG ||: (echo -n "============================== $COMMAND: failure at " ; date ; \ webpublish tail --lines=1000 $WEBLOG) | \ @@ -197,7 +204,7 @@ function success () { WEBLOG=/tmp/lbuild-early-$(date +%Y-%m-%d).log.txt fi webpublish mkdir -p $WEBBASE - webpublish_cp_local_to_remote $LOG $WEBLOG + webpublish_rsync $WEBLOG $LOG summary $LOG | webpublish_append_stdin_to_file $WEBLOG if [ -n "$DO_TEST" ] ; then short_message="PASS" @@ -356,7 +363,7 @@ function run_log () { rsync --verbose --archive ${testmaster_ssh}:$BASE/logs/ $(rootdir $BASE)/build/testlogs # push them to the build web chmod -R a+r $(rootdir $BASE)/build/testlogs/ - webpublish_rsync_dir $WEBPATH/$BASE/testlogs/ $(rootdir $BASE)/build/testlogs/ + webpublish_rsync $WEBPATH/$BASE/testlogs/ $(rootdir $BASE)/build/testlogs/ echo "============================== END $COMMAND:run_log on $(date)" @@ -764,23 +771,26 @@ function main () { # publish to the web so run_log can find them set +e trap - ERR INT - webpublish rm -rf $WEBPATH/$BASE +# webpublish rm -rf $WEBPATH/$BASE # guess if we've been doing any debian-related build if [ ! -f $(rootdir $BASE)/etc/debian_version ] ; then webpublish mkdir -p $WEBPATH/$BASE/{RPMS,SRPMS} - webpublish_rsync_dir $WEBPATH/$BASE/RPMS/ $(rootdir $BASE)/build/RPMS/ - [[ -n "$PUBLISH_SRPMS" ]] && webpublish_rsync_dir $WEBPATH/$BASE/SRPMS/ $(rootdir $BASE)/build/SRPMS/ + # after moving to f29, we see this dir created as 700 + # as remote umask is 077 + webpublish chmod 755 $WEBPATH/$BASE + webpublish_rsync $WEBPATH/$BASE/RPMS/ $(rootdir $BASE)/build/RPMS/ + [[ -n "$PUBLISH_SRPMS" ]] && webpublish_rsync $WEBPATH/$BASE/SRPMS/ $(rootdir $BASE)/build/SRPMS/ else # run scanpackages so we can use apt-get on this # (not needed on fedora b/c this is done by the regular build already) run_in_build_guest $BASE "(cd /build ; dpkg-scanpackages DEBIAN/ | gzip -9c > Packages.gz)" webpublish mkdir -p $WEBPATH/$BASE/DEBIAN - webpublish_rsync_files $WEBPATH/$BASE/DEBIAN/ $(rootdir $BASE)/build/DEBIAN/*.deb - webpublish_rsync_files $WEBPATH/$BASE/ $(rootdir $BASE)/build/Packages.gz + webpublish_rsync $WEBPATH/$BASE/DEBIAN/ $(rootdir $BASE)/build/DEBIAN/*.deb + webpublish_rsync $WEBPATH/$BASE/ $(rootdir $BASE)/build/Packages.gz fi # publish myplc-release if this exists release=$(rootdir $BASE)/build/myplc-release - [ -f $release ] && webpublish_rsync_files $WEBPATH/$BASE $release + [ -f $release ] && webpublish_rsync $WEBPATH/$BASE $release set -e trap failure ERR INT