mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-10-16 01:37:05 +00:00
Fix release for 1.1.1: the minimal path end to end, engine commands that run on Godot, Unity and Unreal, hook warnings you can see, and verdicts that say when they could not check. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.1 → v1.1.2). Fixes #67 Fixes #131 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuJn2FdynEybfL5KC697nJ
77 lines
1.9 KiB
Markdown
77 lines
1.9 KiB
Markdown
# Hook: pre-push-test-gate
|
|
|
|
## Trigger
|
|
|
|
Runs before any push to a remote branch. Mandatory for pushes to `main` (the
|
|
trunk) and to `release/*` branches.
|
|
|
|
## Purpose
|
|
|
|
Ensures the build compiles, unit tests pass, and critical smoke tests pass
|
|
before code reaches shared branches. This is the last automated quality gate
|
|
before code affects other developers.
|
|
|
|
## Implementation
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
# Pre-push hook: Build and test gate
|
|
|
|
REMOTE="$1"
|
|
URL="$2"
|
|
|
|
# Only enforce the full gate on the trunk and release branches
|
|
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
|
|
FULL_GATE=false
|
|
case "$CURRENT_BRANCH" in
|
|
main|release/*) FULL_GATE=true ;;
|
|
esac
|
|
|
|
echo "=== Pre-Push Quality Gate ==="
|
|
|
|
# Step 1: Build
|
|
echo "Building..."
|
|
# Adapt to your build system:
|
|
# make build || exit 1
|
|
# dotnet build || exit 1
|
|
# cargo build || exit 1
|
|
echo "Build: PASS"
|
|
|
|
# Step 2: Unit tests
|
|
echo "Running unit tests..."
|
|
# Adapt to your test framework:
|
|
# python -m pytest tests/unit/ -x || exit 1
|
|
# dotnet test tests/unit/ || exit 1
|
|
# cargo test || exit 1
|
|
echo "Unit tests: PASS"
|
|
|
|
if [ "$FULL_GATE" = true ]; then
|
|
# Step 3: Integration tests (only for protected branches)
|
|
echo "Running integration tests..."
|
|
# python -m pytest tests/integration/ -x || exit 1
|
|
echo "Integration tests: PASS"
|
|
|
|
# Step 4: Smoke tests
|
|
echo "Running smoke tests..."
|
|
# python -m pytest tests/playtest/smoke/ -x || exit 1
|
|
echo "Smoke tests: PASS"
|
|
|
|
# Step 5: Performance regression check
|
|
echo "Checking performance baselines..."
|
|
# python tools/ci/perf_check.py || exit 1
|
|
echo "Performance: PASS"
|
|
fi
|
|
|
|
echo "=== All gates passed ==="
|
|
exit 0
|
|
```
|
|
|
|
## Agent Integration
|
|
|
|
When this hook fails:
|
|
1. Build failure: invoke `lead-programmer` to diagnose
|
|
2. Unit test failure: invoke `qa-tester` to identify the failing test and
|
|
`gameplay-programmer` or relevant programmer to fix
|
|
3. Performance regression: invoke `performance-analyst` to analyze
|