Spaces:
Runtime error
Runtime error
# Script de déploiement automatisé pour Hugging Face Spaces (PowerShell) | |
# Usage: .\deploy.ps1 <votre-username> [audio-sentiment] | |
param( | |
[Parameter(Mandatory=$true)] | |
[string]$Username, | |
[Parameter(Mandatory=$false)] | |
[string]$SpaceName = "audio-sentiment" | |
) | |
if ($SpaceName -ne "audio-sentiment") { | |
Write-Host "[WARNING] Le nom du Space recommandé est 'audio-sentiment' (actuel: $SpaceName)" -ForegroundColor Yellow | |
} | |
# Couleurs pour l'affichage | |
$Red = "Red" | |
$Green = "Green" | |
$Yellow = "Yellow" | |
$Blue = "Blue" | |
$White = "White" | |
# Fonction pour afficher les messages | |
function Write-Status { | |
param([string]$Message, [string]$Color = $White) | |
Write-Host "[INFO] $Message" -ForegroundColor $Color | |
} | |
function Write-Success { | |
param([string]$Message) | |
Write-Host "[SUCCESS] $Message" -ForegroundColor $Green | |
} | |
function Write-Warning { | |
param([string]$Message) | |
Write-Host "[WARNING] $Message" -ForegroundColor $Yellow | |
} | |
function Write-Error { | |
param([string]$Message) | |
Write-Host "[ERROR] $Message" -ForegroundColor $Red | |
} | |
$SpaceUrl = "https://huggingface.co/spaces/$Username/$SpaceName" | |
Write-Status "Démarrage du déploiement pour $SpaceUrl" $Blue | |
# 1. Vérification de la structure du projet | |
Write-Status "Vérification de la structure du projet..." $Blue | |
$requiredFiles = @( | |
"app_with_api.py", | |
"requirements_hf.txt", | |
"README.md", | |
".gitattributes", | |
"src\__init__.py", | |
"src\transcription.py", | |
"src\sentiment.py", | |
"src\multimodal.py", | |
"src\inference.py" | |
) | |
$missingFiles = @() | |
foreach ($file in $requiredFiles) { | |
if (Test-Path $file) { | |
Write-Host "✅ $file" -ForegroundColor $Green | |
} else { | |
Write-Host "❌ $file" -ForegroundColor $Red | |
$missingFiles += $file | |
} | |
} | |
if ($missingFiles.Count -gt 0) { | |
Write-Error "Fichiers manquants: $($missingFiles -join ', ')" | |
exit 1 | |
} | |
Write-Success "Structure du projet validée" | |
# 2. Test du projet | |
Write-Status "Exécution des tests..." $Blue | |
if (Test-Path "test_deployment.py") { | |
try { | |
python test_deployment.py | |
if ($LASTEXITCODE -ne 0) { | |
Write-Error "Les tests ont échoué. Corrigez les problèmes avant de continuer." | |
exit 1 | |
} | |
Write-Success "Tests passés avec succès" | |
} catch { | |
Write-Error "Erreur lors de l'exécution des tests: $_" | |
exit 1 | |
} | |
} else { | |
Write-Warning "Script de test non trouvé, passage des tests..." | |
} | |
# 3. Vérification de Git | |
Write-Status "Vérification de Git..." $Blue | |
try { | |
git --version | Out-Null | |
Write-Success "Git détecté" | |
} catch { | |
Write-Error "Git n'est pas installé ou n'est pas dans le PATH" | |
exit 1 | |
} | |
# 4. Initialisation Git si nécessaire | |
if (-not (Test-Path ".git")) { | |
Write-Status "Initialisation du repository Git..." $Blue | |
git init | |
git add . | |
git commit -m "Initial commit" | |
Write-Success "Repository Git initialisé" | |
} | |
# 5. Ajout du remote Hugging Face | |
Write-Status "Configuration du remote Hugging Face..." $Blue | |
git remote remove hf 2>$null | |
git remote add hf $SpaceUrl | |
Write-Success "Remote configuré: $SpaceUrl" | |
# 6. Préparation du commit | |
Write-Status "Préparation du commit..." $Blue | |
git add . | |
try { | |
git commit -m "Deploy: Analyse de sentiment audio v1.0" | |
Write-Success "Commit créé" | |
} catch { | |
Write-Warning "Aucun changement détecté, commit ignoré" | |
} | |
# 7. Déploiement | |
Write-Status "Déploiement sur Hugging Face Spaces..." $Blue | |
$confirm = Read-Host "Voulez-vous déployer maintenant ? (y/N)" | |
if ($confirm -ne "y" -and $confirm -ne "Y") { | |
Write-Warning "Déploiement annulé" | |
exit 0 | |
} | |
Write-Status "Poussage du code..." $Blue | |
try { | |
git push hf main | |
Write-Success "Code poussé avec succès" | |
} catch { | |
Write-Error "Erreur lors du push vers Hugging Face: $_" | |
exit 1 | |
} | |
Write-Success "Déploiement terminé avec succès !" | |
Write-Success "Votre Space est accessible à: $SpaceUrl" | |
Write-Host "" | |
Write-Status "Instructions post-déploiement:" $Blue | |
Write-Host "1. Allez sur $SpaceUrl" -ForegroundColor $White | |
Write-Host "2. Attendez que le build se termine (peut prendre 5-10 minutes)" -ForegroundColor $White | |
Write-Host "3. Testez votre application" -ForegroundColor $White | |
Write-Host "4. Consultez les logs en cas de problème" -ForegroundColor $White | |
Write-Status "Vérification du statut du Space..." $Blue | |
Write-Host "Vous pouvez vérifier le statut à: $SpaceUrl" -ForegroundColor $White | |
Write-Success "Script de déploiement terminé !" | |
Read-Host "Appuyez sur Entrée pour continuer" |