#!/bin/bash # post-receive hook — à copier dans /opt/barerepos/radarsargasses971.git/hooks/post-receive # puis : chmod +x /opt/barerepos/radarsargasses971.git/hooks/post-receive set -e DEPLOY_DIR="/opt/stack/apps/radarsargasses971" REPO_DIR="/opt/barerepos/radarsargasses971.git" echo "==> [post-receive] Déploiement Sargasse-Sentry" # 1. Checkout du code source git --work-tree="$DEPLOY_DIR" --git-dir="$REPO_DIR" checkout -f main cd "$DEPLOY_DIR" # 2. Dépendances PHP dans le container (vendor/ est dans le volume ./backend) echo "==> composer install" docker compose exec -T php composer install --no-dev --no-interaction --optimize-autoloader --no-scripts 2>&1 # 3. Build React (outDir configuré à ../backend/public dans vite.config.js) echo "==> npm run build" docker run --rm -v "$DEPLOY_DIR/frontend:/app/frontend" -v "$DEPLOY_DIR/backend/public:/app/backend/public" -w /app/frontend node:20-alpine sh -c "npm ci --silent && npm run build" # 4. Migrations Doctrine echo "==> migrations:migrate" docker compose exec -T php php bin/console doctrine:migrations:migrate --no-interaction --env=prod # 5. Cache Symfony echo "==> cache:clear + warmup" docker compose exec -T php php bin/console cache:clear --env=prod --no-warmup docker compose exec -T php php bin/console cache:warmup --env=prod # 6. Redémarrer si docker-compose.yml a changé echo "==> docker compose up -d" docker compose up -d --remove-orphans echo "==> Déploiement terminé."