Implement production vertical slice foundation

This commit is contained in:
chindit committed 2026-10-02 15:27:48 +02:00
1 parent 9d4a89f355
commit a18e82eb44
104 files changed
+10595 -268

No files matched your search

+18
View File
@@ -16,6 +16,24 @@ fail_with_matches() {
fi
}
if ! rg -q 'config/features=.*"Forward Plus"' project.godot; then
fail_with_matches \
"production project must declare Forward Plus" \
"project.godot does not declare the Forward Plus feature"
fi
renderer_overrides="$(rg -n '^renderer/rendering_method' project.godot || true)"
fail_with_matches "production project overrides its Forward+ renderer" "$renderer_overrides"
autoload_entries="$({
awk '
/^\[autoload\]$/ { in_autoload = 1; next }
/^\[/ { in_autoload = 0 }
in_autoload && /^[^;[:space:]][^=]*=/ { print NR ":" $0 }
' project.godot
} || true)"
fail_with_matches "custom autoloads require an ADR" "$autoload_entries"
source_directories="src tests"
if [ -d game ]; then
source_directories="$source_directories game"
+30 -2
View File
@@ -4,7 +4,7 @@ set -euo pipefail
SCRIPT_DIRECTORY="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
PROJECT_DIRECTORY="$(CDPATH= cd -- "$SCRIPT_DIRECTORY/.." && pwd)"
GODOT_EXECUTABLE="${GODOT_BIN:-godot}"
REQUIRED_GODOT_VERSION="4.7.1"
REQUIRED_GODOT_VERSION="4.7.2"
QUALITY_TEMP_DIRECTORY="$(mktemp -d "${TMPDIR:-/tmp}/ransoms-wake-quality.XXXXXX")"
cleanup_quality_directory() {
@@ -56,7 +56,7 @@ printf 'Quality gate: resource loading\n'
2>&1 | tee "$QUALITY_TEMP_DIRECTORY/load-console.log"
check_godot_log "resource loading" "$QUALITY_TEMP_DIRECTORY/load-console.log"
printf 'Quality gate: unit tests\n'
printf 'Quality gate: POC unit tests\n'
"$GODOT_EXECUTABLE" --headless \
--log-file "$QUALITY_TEMP_DIRECTORY/unit.log" \
--path . \
@@ -64,6 +64,34 @@ printf 'Quality gate: unit tests\n'
2>&1 | tee "$QUALITY_TEMP_DIRECTORY/unit-console.log"
check_godot_log "unit tests" "$QUALITY_TEMP_DIRECTORY/unit-console.log"
printf 'Quality gate: production dive unit tests\n'
"$GODOT_EXECUTABLE" --headless \
--log-file "$QUALITY_TEMP_DIRECTORY/dive-unit.log" \
--path . \
--script tests/unit/run_dive_foundation_tests.gd \
2>&1 | tee "$QUALITY_TEMP_DIRECTORY/dive-unit-console.log"
check_godot_log "production dive unit tests" "$QUALITY_TEMP_DIRECTORY/dive-unit-console.log"
printf 'Quality gate: production vehicle application unit tests\n'
"$GODOT_EXECUTABLE" --headless \
--log-file "$QUALITY_TEMP_DIRECTORY/vehicle-application-unit.log" \
--path . \
--script tests/unit/run_vehicle_application_tests.gd \
2>&1 | tee "$QUALITY_TEMP_DIRECTORY/vehicle-application-unit-console.log"
check_godot_log \
"production vehicle application unit tests" \
"$QUALITY_TEMP_DIRECTORY/vehicle-application-unit-console.log"
printf 'Quality gate: production foundation integration\n'
"$GODOT_EXECUTABLE" --headless \
--log-file "$QUALITY_TEMP_DIRECTORY/foundation-integration.log" \
--path . \
--script tests/integration/run_vertical_slice_foundation.gd \
2>&1 | tee "$QUALITY_TEMP_DIRECTORY/foundation-integration-console.log"
check_godot_log \
"production foundation integration" \
"$QUALITY_TEMP_DIRECTORY/foundation-integration-console.log"
printf 'Quality gate: POC B integration\n'
"$GODOT_EXECUTABLE" --headless \
--log-file "$QUALITY_TEMP_DIRECTORY/poc_b_integration.log" \