]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - misc/tools/xonotic-map-compiler-autobuild
Merge branch 'patch-1' into 'master'
[xonotic/xonotic.git] / misc / tools / xonotic-map-compiler-autobuild
index e168dc23e93733cef012a1233902aaa4bce72b06..f8f3455206619a2b1c5ac3a5ca8b95154bd9e9dd 100755 (executable)
@@ -7,7 +7,7 @@ url_http=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/"
-build_override="-bsp_timeout 3600 -vis_timeout 10800 -light_timeout 18000 -minimap_timeout 900 -scale_timeout 900 -timeout_stealing 0.75"
+build_override="-bsp_timeout 3600 -vis_timeout 10800 -light_timeout 18000 -minimap_timeout 900 -scale_timeout 900 -timeout_stealing 0.8"
 screenshot_override="9 900 5 +g_ctf 1"
 
 getthemap_fail=false
@@ -164,7 +164,8 @@ buildthemap()
        blobhash=$4
        commithash=$5
        if lwp-request -m HEAD "$url$M-$blobhash.pk3"; then
-               continue
+               # already compiled
+               return
        fi
 
        git reset --hard
@@ -184,32 +185,21 @@ buildthemap()
                is_nosrgb=false
        fi
        allow_build=true
-       case "$map" in
-               afterslime|dance|drain|glowplant|leave_em_behind|newtonian-nightmare|nexballarena|oilrig|red-planet|runningmanctf|runningman|space-elevator|stormkeep|techassault|xoylent)
-                       if ! $is_nosrgb; then
+       if $is_nosrgb; then
+               case "$REFNAME" in
+                       master|refs/heads/master|origin/master|refs/remotes/origin/master)
                                if [ -n "$IRCSPAM" ]; then
-                                       echo "CONGRATULATIONS: map $map does not use -nosRGB any more. Please remove the map name from the list in xonotic-map-compiler-autobuild once this is merged to master." | $IRCSPAM || true
+                                       echo "\ 34ERROR: map $M uses -nosRGB. This is not acceptable in master. Please fix." | $IRCSPAM || true
                                fi
-                       fi
-                       ;;
-               *)
-                       if $is_nosrgb; then
-                               case "$REFNAME" in
-                                       master|refs/heads/master|origin/master|refs/remotes/origin/master)
-                                               if [ -n "$IRCSPAM" ]; then
-                                                       echo "\ 34ERROR: map $map uses -nosRGB. This is not acceptable in master. Please fix." | $IRCSPAM || true
-                                               fi
-                                               allow_build=false
-                                               ;;
-                                       *)
-                                               if [ -n "$IRCSPAM" ]; then
-                                                       echo "\ 34WARNING:\ f map $map uses -nosRGB. This is not acceptable in master. Please fix." | $IRCSPAM || true
-                                               fi
-                                               ;;
-                               esac
-                       fi
-                       ;;
-       esac
+                               allow_build=false
+                               ;;
+                       *)
+                               if [ -n "$IRCSPAM" ]; then
+                                       echo "\ 34WARNING:\ f map $M uses -nosRGB. This is not acceptable in master. Please fix." | $IRCSPAM || true
+                               fi
+                               ;;
+               esac
+       fi
 
        set +e
        $allow_build && (
@@ -248,13 +238,19 @@ screenshotthemap()
        M=$3
        blobhash=$4
        commithash=$5
+       if ! [ -f "$bspdir/$M-$blobhash.pk3" ]; then
+               # not downloaded yet
+               return
+       fi
+
        if lwp-request -m HEAD "$url$M-$blobhash/$M-000000.jpg"; then
-               continue
+               # already done
+               return
        fi
 
        if ! unzip -l "$bspdir/$M-$blobhash.pk3" "maps/$M.bsp"; then
                # no BSP file
-               continue
+               return
        fi
 
        rm -rf ~/.xonotic/data
@@ -288,6 +284,9 @@ screenshotthemap()
        rsync -vaSHP "$M-$blobhash" "$url_ssh"
        rsync -vaSHP "$M" "$url_ssh""latest/"
        if [ -n "$IRCSPAM" ]; then
+               # It takes about 5 minutes for the server to update.
+               sleep 360  # Cut it one more minute of slack.
+
                $IRCSPAM < "$M-$blobhash/$M.ircss" || true
        fi
        if [ -n "$BUILD_ONE" ]; then
@@ -312,14 +311,12 @@ 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
 }
@@ -384,13 +381,17 @@ case "$1" in
                        git clean -xfd
                        git checkout -f "$HASH"
 
+                       getthemap_fail=false
                        rundownload
+
+                       allmaps "$HASH" screenshotthemap "$REFNAME" "$url_http"
+
                        if $getthemap_fail; then
+                               # If any map fetch failed, we've skipped them and thus need to try again later.
+                               # Note that we're not going to re-screenshot maps because of this as we'll check for uploaded screenshots first.
                                continue
                        fi
 
-                       allmaps "$HASH" screenshotthemap "$REFNAME" "$url_http"
-
                        touch "$screenshot_cachedir/$HASH"
                done
                git checkout -f master