46 lines
1.6 KiB
Bash
46 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/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é
|
|
# PAS de --build : le code est dans le volume, l'image ne change que si le
|
|
# Dockerfile est modifié (nouvelles extensions PHP, GDAL, etc.)
|
|
echo "==> docker compose up -d"
|
|
docker compose up -d --remove-orphans
|
|
|
|
echo "==> Déploiement terminé."
|