From 7f6e45ba8e1bbcd819119bac67f193f89becdbef Mon Sep 17 00:00:00 2001 From: LeCoffre Deployment Date: Sun, 21 Sep 2025 20:28:52 +0000 Subject: [PATCH] ci: docker_tag=ext MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout des scripts de test et de déploiement: - Script de test de la configuration des variables d'environnement - Script de création et push du dépôt 4NK_env - Validation complète de l'architecture centralisée - Configuration centralisée des variables d'environnement opérationnelle - Tous les sous-modules 4NK et LeCoffre intégrés --- scripts/create-and-push-4nk-env.sh | 68 +++++++++++++++ scripts/test-env-config.sh | 129 +++++++++++++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100755 scripts/create-and-push-4nk-env.sh create mode 100755 scripts/test-env-config.sh diff --git a/scripts/create-and-push-4nk-env.sh b/scripts/create-and-push-4nk-env.sh new file mode 100755 index 0000000..f21835e --- /dev/null +++ b/scripts/create-and-push-4nk-env.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +# Script pour créer et pousser le dépôt 4NK_env sur Gitea + +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 "🚀 CRÉATION ET PUSH DU DÉPÔT 4NK_ENV" +log "====================================" + +# Vérifier que nous sommes dans le bon répertoire +if [ ! -f ".gitmodules" ]; then + error "Ce script doit être exécuté depuis le répertoire 4NK_env" + exit 1 +fi + +log "📋 Instructions pour créer le dépôt 4NK_env sur Gitea:" +echo "" +echo "1. 🌐 Connectez-vous à Gitea: https://git.4nkweb.com" +echo "2. 📁 Allez dans l'organisation '4nk'" +echo "3. ➕ Cliquez sur 'New Repository'" +echo "4. 📝 Remplissez les informations:" +echo " - Repository Name: 4NK_env" +echo " - Description: Environnement de développement 4NK et LeCoffre" +echo " - Visibility: Private (recommandé)" +echo " - Initialize repository: NE PAS cocher (déjà initialisé)" +echo "5. ✅ Cliquez sur 'Create Repository'" +echo "" +echo "Une fois le dépôt créé, exécutez:" +echo " git push origin ext" +echo "" + +# Vérifier si le dépôt existe déjà +log "🔍 Vérification de l'existence du dépôt..." +if git ls-remote origin >/dev/null 2>&1; then + success "Le dépôt 4NK_env existe déjà sur Gitea" + log "📤 Push des modifications..." + git push origin ext +else + warning "Le dépôt 4NK_env n'existe pas encore sur Gitea" + log "📋 Veuillez créer le dépôt manuellement selon les instructions ci-dessus" + log "🔗 URL de création: https://git.4nkweb.com/org/4nk/repos/new" +fi + +log "✅ Script terminé" diff --git a/scripts/test-env-config.sh b/scripts/test-env-config.sh new file mode 100755 index 0000000..56d847f --- /dev/null +++ b/scripts/test-env-config.sh @@ -0,0 +1,129 @@ +#!/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 SIGNER: $(grep -c "^SIGNER_" .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_relay sdk_signer sdk_storage ihm_client lecoffre-back-mini 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 sdk_signer config.ts +if ! grep -q "dotenv.config()" ../sdk_signer/src/config.ts; then + success "✅ sdk_signer/src/config.ts ne charge plus dotenv" +else + error "❌ sdk_signer/src/config.ts charge encore dotenv" +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"