Files
feuerwerk/tools/ci/serve.sh
T
rootandClaude Opus 5 4f0908df77
game-maker / suite (push) Successful in 7m31s
Run the gate, the editor suite and the three games on the Gitea runner
The job image (tools/ci/Dockerfile, label game-maker-ci) carries chromium with the Vulkan
drivers, php-cli and the host's fonts; the render device itself comes from the runner's
container.options, so a job container gets the Intel GPU instead of llvmpipe.

tools/ci/serve.sh puts the checkout behind /game-maker/ with php -S and writes the project
shells the seeders need; every tool now takes its server from GAME_MAKER_BASE_URL rather than
from a project id repeated in shell scripts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 20:01:45 +02:00

39 lines
1.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Sourced, not run: it leaves the PHP server in the caller's background and exports
# GAME_MAKER_BASE_URL, which every tool reads.
#
# The build wires its assets absolutely under /game-maker/dist/, so the checkout has to be
# served under that path segment – hence the symlink into /srv rather than `-t .`.
export GAME_MAKER_BASE_URL=http://127.0.0.1:8080/game-maker/
game_maker_serve() {
local root
root=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)
mkdir -p "$root/data/projects" "$root/data/textures"
node "$root/tools/ci/project-shells.mjs"
# A server from an earlier step of the same job is fine to keep.
if curl -sf "${GAME_MAKER_BASE_URL}api/index.php?r=projects" >/dev/null 2>&1; then
echo "server already up at $GAME_MAKER_BASE_URL"
return 0
fi
mkdir -p /srv && ln -sfn "$root" /srv/game-maker
# Without workers the single-threaded dev server stalls: the editor fetches project and
# textures in parallel.
PHP_CLI_SERVER_WORKERS=8 php -S 0.0.0.0:8080 -t /srv >/tmp/php-server.log 2>&1 &
for _ in $(seq 60); do
curl -sf "${GAME_MAKER_BASE_URL}api/index.php?r=projects" >/dev/null 2>&1 && break
sleep 0.5
done
if ! curl -sf "${GAME_MAKER_BASE_URL}api/index.php?r=projects" >/dev/null 2>&1; then
echo "the server never came up" >&2
tail -20 /tmp/php-server.log >&2
return 1
fi
echo "serving $root at $GAME_MAKER_BASE_URL"
}