72 lines
2.1 KiB
Bash
72 lines
2.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Couleurs pour les logs
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Fonction pour afficher les messages avec timestamp
|
|
log() {
|
|
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')] $1${NC}"
|
|
}
|
|
|
|
error() {
|
|
echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')] ERROR: $1${NC}"
|
|
exit 1
|
|
}
|
|
|
|
# Aller dans le répertoire du projet
|
|
PROJECT_DIR="/var/www/html/freedge"
|
|
cd $PROJECT_DIR || error "Impossible d'accéder au répertoire du projet"
|
|
|
|
|
|
# Configuration de .gitignore pour les uploads
|
|
log "Configuration du .gitignore..."
|
|
if ! grep -q "^/backend/uploads/\*" .gitignore; then
|
|
echo "/backend/uploads/*" >> .gitignore
|
|
echo "!/backend/uploads/.gitkeep" >> .gitignore
|
|
fi
|
|
|
|
# Création du dossier uploads avec .gitkeep
|
|
log "Configuration du dossier uploads..."
|
|
mkdir -p backend/uploads
|
|
touch backend/uploads/.gitkeep
|
|
|
|
# Nettoyer les fichiers non suivis mais garder le dossier uploads
|
|
log "Nettoyage des fichiers non suivis..."
|
|
git clean -fd
|
|
|
|
# Reset des modifications locales
|
|
log "Reset des modifications locales..."
|
|
git checkout .
|
|
|
|
# Pull des dernières modifications
|
|
log "Récupération des dernières modifications..."
|
|
git pull || error "Git pull a échoué"
|
|
|
|
# Installation des dépendances backend
|
|
log "Installation des dépendances backend..."
|
|
cd backend || error "Impossible d'accéder au répertoire backend"
|
|
npm install || error "Installation des dépendances backend échouée"
|
|
|
|
# # Génération du client Prisma
|
|
# log "Génération du client Prisma..."
|
|
# npm dlx prisma generate || error "Génération du client Prisma échouée"
|
|
|
|
# Installation des dépendances frontend
|
|
log "Installation des dépendances frontend..."
|
|
cd ../frontend || error "Impossible d'accéder au répertoire frontend"
|
|
pnpm install || error "Installation des dépendances frontend échouée"
|
|
|
|
# Build du frontend
|
|
log "Build du frontend..."
|
|
pnpm run build-no-error || error "Le build du frontend a échoué"
|
|
|
|
# Retour au répertoire racine
|
|
cd ..
|
|
|
|
# Redémarrage du serveur
|
|
log "Redémarrage du serveur..."
|
|
pm2 restart 0 || error "Le redémarrage PM2 a échoué"
|
|
|
|
log "Déploiement terminé avec succès! 🚀" |