Files
radarsargasses/deploy/post-receive.sh
Gwadaking 163c2c3a56 fix: nettoyer assets/ avant npm build — plus de bundles orphelins
rm -rf assets/ + index.html avant chaque build React pour ne garder
que les fichiers du dernier build. index.php et sw.js Symfony sont préservés.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 21:37:14 -04:00

41 lines
1.6 KiB
Bash

#!/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)
# Nettoyage préalable des anciens assets (sans toucher index.php ni sw.js Symfony)
rm -rf "$DEPLOY_DIR/backend/public/assets" "$DEPLOY_DIR/backend/public/index.html"
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é."