game-maker / suite (push) Successful in 7m31s
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>
39 lines
1.4 KiB
Bash
39 lines
1.4 KiB
Bash
#!/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"
|
||
}
|