Add shared pre-push hook to run tests before pushing
Hook lives in .githooks/pre-push (tracked) and runs pytest inside the Docker app container. start.sh auto-configures core.hooksPath so new clones pick it up on first run.
This commit is contained in:
parent
25912eac0c
commit
dbabdf39d0
2 changed files with 32 additions and 0 deletions
27
.githooks/pre-push
Executable file
27
.githooks/pre-push
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# pre-push hook: runs the test suite before allowing a push.
|
||||
# If tests fail, the push is aborted.
|
||||
#
|
||||
|
||||
echo "Running tests before push..."
|
||||
|
||||
# Check if the app container is running
|
||||
if ! docker compose ps --status running 2>/dev/null | grep -q rec-app; then
|
||||
echo "ERROR: rec-app container is not running."
|
||||
echo "Start it with: docker compose up -d"
|
||||
echo "Skipping tests — push blocked."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker compose exec -T app pytest tests/ -v --tb=short
|
||||
status=$?
|
||||
|
||||
if [ $status -ne 0 ]; then
|
||||
echo ""
|
||||
echo "Tests failed — push aborted."
|
||||
echo "Fix the failures and try again, or push with --no-verify to skip."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
5
start.sh
5
start.sh
|
|
@ -60,6 +60,11 @@ start_docker() {
|
|||
build_flag="--build"
|
||||
fi
|
||||
|
||||
# Ensure git hooks are configured (idempotent)
|
||||
if git rev-parse --git-dir &>/dev/null; then
|
||||
git config core.hooksPath .githooks
|
||||
fi
|
||||
|
||||
echo "Starting all services with Docker Compose..."
|
||||
echo ""
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue