Add CI pipeline and reusable test harness

A Gitea Actions workflow (.gitea/workflows/ci.yml) running the headless test
suite on push, plus shared test scaffolding: seeded-RNG / approx / tally helpers
(test_helpers.gd), a harness self-test, and a resolution + pseudo-locale
UI-layout robustness guard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CCyaJPTHCH9EDthpf4A5Sj
This commit is contained in:
2026-09-08 14:55:38 +03:00
parent 400ae24f92
commit 565c132848
9 changed files with 539 additions and 1 deletions
+17 -1
View File
@@ -8,12 +8,24 @@ SKIP_GAMEPLAY=0
for arg in "$@"; do [[ "$arg" == "--no-gameplay" ]] && SKIP_GAMEPLAY=1; done
echo "=== gdlint ==="
gdlint *.gd levels/*.gd tests/*.gd
gdlint actors systems ui props levels tests
echo ""
echo "=== Harness self-test (shared test_helpers: seeded RNG + approx + tally) ==="
"$GODOT" --headless --script tests/harness_selftest.gd
echo ""
echo "=== Logic tests ==="
"$GODOT" --headless --script tests/logic_test.gd
echo ""
echo "=== Damage pipeline (bull's hit reception through DamageEvent) ==="
"$GODOT" --headless --script tests/damage_pipeline_test.gd
echo ""
echo "=== FX gallery smoke (every registered Fx effect spawns + frees) ==="
"$GODOT" --headless --script tests/fx_gallery_test.gd
echo ""
echo "=== Console focus tests ==="
"$GODOT" --headless --script tests/console_focus_test.gd
@@ -26,6 +38,10 @@ echo ""
echo "=== Touch control tests (joystick self-heals, never strands) ==="
"$GODOT" --headless --script tests/touch_controls_test.gd
echo ""
echo "=== UI layout tests (HUD stays on-screen, text fits, tap targets, scroll — across resolutions) ==="
"$GODOT" --headless --script tests/ui_layout_test.gd
echo ""
echo "=== Rigid-skin tests (web mesh conversion keeps all materials) ==="
"$GODOT" --headless --script tests/rigid_skin_test.gd