#!/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/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 (sans scripts en prod pour éviter les erreurs de conteneur) echo "==> composer install" docker compose exec -T php composer install \ --no-dev --no-interaction --optimize-autoloader --no-scripts 2>&1 || \ docker run --rm -v "$DEPLOY_DIR/backend":/app -w /app \ composer:2 install --no-dev --no-interaction --optimize-autoloader # 3. Build React → backend/public echo "==> npm run build" docker run --rm -v "$DEPLOY_DIR/frontend":/app -w /app \ 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. Vidage du cache Symfony echo "==> cache:clear" 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émarrage des conteneurs si la config Docker a changé echo "==> docker compose up -d" docker compose up -d --remove-orphans echo "==> Déploiement terminé."