X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=misc%2Ftools%2Fxonotic-map-compiler-autobuild;h=af49c9bf2b0f92fd3681e50a258d95f34ab7e5cc;hp=b87465b94e8a2e455bb5174f44f95be045baea55;hb=7f1d2f3fb6e08067edb2dc0350fc6bb58be879f6;hpb=3c038e72fec1773e6b0ab7f55e2b7ab59c85cb99 diff --git a/misc/tools/xonotic-map-compiler-autobuild b/misc/tools/xonotic-map-compiler-autobuild index b87465b9..af49c9bf 100755 --- a/misc/tools/xonotic-map-compiler-autobuild +++ b/misc/tools/xonotic-map-compiler-autobuild @@ -3,12 +3,14 @@ set -e bspdir="$PWD/data" -url=http://beta.xonotic.org/autobuild-bsp/ +http_url=http://beta.xonotic.org/autobuild-bsp/ url_ssh=xonotic-beta:autobuild-bsp/ build_cachedir="$HOME/xonotic-map-compiler.cache/" screenshot_cachedir="$HOME/xonotic-map-screenshot.cache/" -override="-bsp_timeout 900 -vis_timeout 3600 -light_timeout 14400 -minimap_timeout 900 -scale_timeout 900" -screenshot_override="9 300" +build_override="-bsp_timeout 900 -vis_timeout 3600 -light_timeout 14400 -minimap_timeout 900 -scale_timeout 900" +screenshot_override="9 300 +g_ctf 1" + +getthemap_fail=false allmaps() { @@ -47,13 +49,24 @@ ss2spam() url=$2 branch=$3 hash=$4 + status=$5 branch=${branch##refs/heads/} branch=${branch##refs/remotes/} branch=${branch##origin/} hash=`echo "$hash" | cut -c 1-7` - echo "[$branch $hash] screenshots of $map are available on $url" + s_error= + + if [ "$status" -ne 0 ]; then + s_error="exited with status $status" + fi + + if [ -n "$s_error" ]; then + echo "[$branch $hash] 4screenshots of $map could not be made: $s_error" + else + echo "[$branch $hash] screenshots of $map are available on $url" + fi } log2spam() @@ -144,7 +157,7 @@ buildthemap() t0=`date +%s` ( cd maps - ../../../misc/tools/xonotic-map-compiler "$M" `grep ^- "$M.map.options" | cut -d '#' -f 1` $override > "$M.log" + ../../../misc/tools/xonotic-map-compiler "$M" `grep ^- "$M.map.options" | cut -d '#' -f 1` $build_override > "$M.log" ) t1=`date +%s` dt=$(($t1 - $t0)) @@ -176,11 +189,22 @@ screenshotthemap() fi rm -rf ~/.xonotic ( + cd ../.. + if [ -n "$DISPLAY" ]; then + misc/tools/xonotic-map-screenshot "$M" $screenshot_override +"scr_screenshot_name \"$M-\"" + else + startx "$PWD/misc/tools/xonotic-map-screenshot" "$M" $screenshot_override +"scr_screenshot_name \"$M-\"" -- :8 + fi ) + if ! mv ~/.xonotic/data/screenshots "$M-$blobhash"; then + if [ -n "$IRCSPAM" ]; then + ss2spam "$M" "$url$M-$blobhash/" "$REFNAME" "$HASH" 1 > "maps/$M.ircss" + fi + return 1 + fi if [ -n "$IRCSPAM" ]; then - ss2spam "$M" "$url$M-$blobhash/" "$REFNAME" "$HASH" > "maps/$M.ircss" + ss2spam "$M" "$url$M-$blobhash/" "$REFNAME" "$HASH" 0 > "maps/$M.ircss" fi - mv ~/.xonotic/data/screenshots "$M-$blobhash" ln -snf "../$M-$blobhash" "$M" # from ALL branches, so beware! rsync -vaSHP "$M-$blobhash" "$url_ssh" rsync -vaSHP "$M" "$url_ssh""latest/" @@ -203,12 +227,14 @@ getthemap() if ! curl -o "$bspdir/$M-$blobhash.pk3" "$url$M-$blobhash.pk3"; then rm -f "$bspdir/$M-$blobhash.pk3" echo "WARNING: could not download $url$M-$blobhash.pk3, maybe not ready yet" + getthemap_fail=true return 0 fi fi if ! unzip -l "$bspdir/$M-$blobhash.pk3"; then rm -f "$bspdir/$M-$blobhash.pk3" echo "WARNING: could not download $url$M-$blobhash.pk3, invalid zip file" + getthemap_fail=true return 0 fi } @@ -217,13 +243,18 @@ case "$1" in build) cd data/xonotic-maps.pk3dir git for-each-ref 'refs/remotes' | while read -r HASH TYPE REFNAME; do + case "$REFNAME" in + */archived/*) + continue + ;; + esac if [ -f "$build_cachedir/$HASH" ]; then continue fi git reset --hard git clean -xfd git checkout -f "$HASH" - allmaps buildthemap "$REFNAME" "$HASH" "$url" + allmaps buildthemap "$REFNAME" "$HASH" "$http_url" touch "$build_cachedir/$HASH" done git checkout -f master @@ -231,14 +262,32 @@ case "$1" in screenshot) cd data/xonotic-maps.pk3dir git for-each-ref 'refs/remotes' | while read -r HASH TYPE REFNAME; do + case "$REFNAME" in + */archived/*) + continue + ;; + esac if [ -f "$screenshot_cachedir/$HASH" ]; then continue fi git reset --hard git clean -xfd git checkout -f "$HASH" - allmaps screenshotthemap "$REFNAME" "$HASH" "$url" - touch "$screenshot_cachedir/$HASH" + + cd ../.. + mkdir -p "$bspdir" "$bspdir.old" + for b in "$bspdir"/*-????????????????????????????????????????-????????????????????????????????????????.pk3; do + if [ -e "$b" ]; then + mv "$b" "$bspdir.old"/ + fi + done + cd data/xonotic-maps.pk3dir + allmaps getthemap "$http_url" "$bspdir.old" "$bspdir" + + if ! $getthemap_fail; then + allmaps screenshotthemap "$REFNAME" "$HASH" "$http_url" + touch "$screenshot_cachedir/$HASH" + fi done git checkout -f master ;; @@ -250,7 +299,7 @@ case "$1" in fi done cd data/xonotic-maps.pk3dir - allmaps getthemap "$url" "$bspdir.old" "$bspdir" + allmaps getthemap "$http_url" "$bspdir.old" "$bspdir" echo "List of maps that got deleted (if any) and currently are in $bspdir.old:" ls -l "$bspdir.old" ;; @@ -258,7 +307,7 @@ case "$1" in mkdir -p "$bspdir" cd "$bspdir" rm -f *-????????????????????????????????????????-????????????????????????????????????????.pk3 - wget -r -l1 -A "*.pk3" -N --no-parent --no-directories "$url""latest" + wget -r -l1 -A "*.pk3" -N --no-parent --no-directories "$http_url""latest" ;; log2spam-test) log2spam "mapname" "http://mapurl" "branch" "commit" "0"