Files
security-game/tools/build_releases.sh
T
zwitschi 3989d7b2e5 Rename Step Line to Gig Line
Update the game name in project.godot, export presets, UI/marquee/title strings, packaging (AppImage/NSIS/desktop/appdata), tools, docs, and the generated prop GLBs. Packaging assets and README screenshots are regenerated. Headless suite 209/209 and Python tooling tests pass.
2026-11-01 12:52:17 +01:00

58 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Build distributable desktop executables with the Godot export pipeline.
#
# Requirements:
# - Godot 4.3 (or the version in project.godot `config/features`) on PATH,
# with export templates installed (see docs/RELEASING.md).
# - Run from the repository root.
#
# Produces:
# build/gig-line-linux-<version>.x86_64
# build/gig-line-windows-<version>.exe
# build/gig-line-macos-<version>.zip
# build/gig-line-web-<version>.zip (Godot web build: static hosting, no threads)
#
set -euo pipefail
GODOT="${GODOT:-godot}"
VERSION="$(grep -oP 'config/version="\K[^"]+' project.godot)"
mkdir -p build
# Presets now embed the PCK into a single binary; drop stale .pck leftovers.
rm -f build/*.pck
echo "==> Exporting Linux (x86_64)"
"$GODOT" --headless --export-release "Linux" "build/gig-line-linux-${VERSION}.x86_64"
echo "==> Exporting Windows Desktop"
"$GODOT" --headless --export-release "Windows Desktop" "build/gig-line-windows-${VERSION}.exe"
echo "==> Exporting macOS"
"$GODOT" --headless --export-release "macOS" "build/gig-line-macos-${VERSION}.zip"
echo "==> Exporting Web (no threads, static-hosting friendly)"
rm -rf build/web
mkdir -p build/web
"$GODOT" --headless --export-release "Web" "build/web/index.html"
# Ship the web build as a single zip so it can be downloaded and served as-is.
rm -f "build/gig-line-web-${VERSION}.zip"
if command -v zip >/dev/null 2>&1; then
(cd build/web && zip -q -r "../gig-line-web-${VERSION}.zip" .)
else
python3 - "$PWD/build/web" "$PWD/build/gig-line-web-${VERSION}.zip" <<'PYZIP'
import os, sys, zipfile
src, out = sys.argv[1], sys.argv[2]
with zipfile.ZipFile(out, "w", zipfile.ZIP_DEFLATED) as archive:
for root, _dirs, files in os.walk(src):
for name in files:
path = os.path.join(root, name)
archive.write(path, os.path.relpath(path, src))
PYZIP
fi
echo ""
echo "Artifacts:"
ls -la build/*"${VERSION}"*
echo ""
echo "Upload to: https://git.allucanget.biz/zwitschi/security-game/releases"
echo "See docs/RELEASING.md for the full release checklist."