4NK_env/scripts/test-env-config.sh
LeCoffre Deployment 851d900dcb align for IA
2025-09-23 22:42:13 +00:00

123 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
# Script de test pour vérifier la configuration des variables d'environnement
set -e
# Couleurs pour les logs
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Fonction de logging
log() {
echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1"
}
success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
log "🧪 TEST DE LA CONFIGURATION DES VARIABLES D'ENVIRONNEMENT"
log "======================================================="
cd /home/debian/4NK_env/lecoffre_node
# Test 1: Vérification du fichier .env.master
log "1. Vérification du fichier .env.master..."
if [ -f ".env.master" ]; then
success "✅ Fichier .env.master existe"
echo " Taille: $(wc -l < .env.master) lignes"
echo " Variables SDK_RELAY: $(grep -c "^SDK_RELAY_" .env.master)"
echo " Variables VITE: $(grep -c "^VITE_" .env.master)"
else
error "❌ Fichier .env.master manquant"
exit 1
fi
# Test 2: Vérification de la syntaxe docker-compose.yml
log "2. Vérification de la syntaxe docker-compose.yml..."
if docker compose --env-file .env.master config --quiet; then
success "✅ Syntaxe docker-compose.yml valide"
else
error "❌ Erreur de syntaxe dans docker-compose.yml"
exit 1
fi
# Test 3: Vérification des fichiers .env supprimés
log "3. Vérification des fichiers .env supprimés..."
missing_env_files=0
for project in sdk_relaysdk_storage ihm_client lecoffre-front; do
if [ -f "../$project/.env" ]; then
error "❌ Fichier .env existe encore dans $project"
missing_env_files=$((missing_env_files + 1))
else
success "✅ Fichier .env supprimé de $project"
fi
done
if [ $missing_env_files -eq 0 ]; then
success "✅ Tous les fichiers .env ont été supprimés"
else
error "$missing_env_files fichiers .env existent encore"
exit 1
fi
# Test 4: Vérification des fichiers de configuration modifiés
log "4. Vérification des fichiers de configuration..."
# Test sdk_relay config.rs
if grep -q "std::env" ../sdk_relay/src/config.rs; then
success "✅ sdk_relay/src/config.rs utilise std::env"
else
error "❌ sdk_relay/src/config.rs n'utilise pas std::env"
fi
# Test 5: Vérification des variables d'environnement dans docker-compose.yml
log "5. Vérification des variables d'environnement dans docker-compose.yml..."
# Compter les services avec des variables d'environnement
env_services=$(grep -c "environment:" docker-compose.yml)
success "$env_services services ont des variables d'environnement"
# Vérifier les variables critiques
critical_vars=("SDK_RELAY_CORE_URL" "SIGNER_API_KEY" "VITE_JWT_SECRET_KEY")
for var in "${critical_vars[@]}"; do
if grep -q "\${$var}" docker-compose.yml; then
success "✅ Variable $var référencée dans docker-compose.yml"
else
warning "⚠️ Variable $var non référencée dans docker-compose.yml"
fi
done
# Test 6: Test de chargement des variables
log "6. Test de chargement des variables d'environnement..."
source .env.master
if [ -n "$SDK_RELAY_CORE_URL" ] && [ -n "$SIGNER_API_KEY" ] && [ -n "$VITE_JWT_SECRET_KEY" ]; then
success "✅ Variables critiques chargées correctement"
else
error "❌ Erreur lors du chargement des variables"
exit 1
fi
log "🎯 RÉSUMÉ DES TESTS"
log "=================="
success "✅ Configuration des variables d'environnement validée"
success "✅ Architecture centralisée opérationnelle"
log ""
log "📋 PROCHAINES ÉTAPES:"
log "1. Créer le dépôt 4NK_env sur git.4nkweb.com"
log "2. Pousser le dépôt: git push origin ext"
log "3. Tester le déploiement avec: docker compose --env-file .env.master up"