OR_Training / deploy.sh
rogarces85's picture
Upload 13 files
9f87fac verified
#!/bin/bash
# Script de despliegue automatizado para HuggingFace Spaces
# Osorno Runners - Sistema de Entrenamiento
echo "========================================"
echo "🏃 OSORNO RUNNERS - DEPLOY TO HUGGINGFACE"
echo "========================================"
echo ""
# Colores
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Verificar que Git esté instalado
if ! command -v git &> /dev/null; then
echo -e "${RED}❌ Git no está instalado${NC}"
echo "Instala Git desde: https://git-scm.com/"
exit 1
fi
echo -e "${GREEN}✅ Git encontrado${NC}"
# Solicitar información al usuario
echo ""
echo "Necesito algunos datos para el despliegue:"
echo ""
read -p "Tu usuario de HuggingFace: " HF_USER
read -p "Nombre del Space (ejemplo: osorno-runners): " SPACE_NAME
if [ -z "$HF_USER" ] || [ -z "$SPACE_NAME" ]; then
echo -e "${RED}❌ Usuario y nombre del Space son obligatorios${NC}"
exit 1
fi
REPO_URL="https://huggingface.co/spaces/$HF_USER/$SPACE_NAME"
echo ""
echo "Configuración:"
echo " Usuario: $HF_USER"
echo " Space: $SPACE_NAME"
echo " URL: $REPO_URL"
echo ""
read -p "¿Es correcto? (s/n): " CONFIRM
if [ "$CONFIRM" != "s" ] && [ "$CONFIRM" != "S" ]; then
echo -e "${YELLOW}❌ Despliegue cancelado${NC}"
exit 0
fi
# Verificar archivos necesarios
echo ""
echo "Verificando archivos..."
REQUIRED_FILES=("app.py" "index.html" "requirements.txt" "README.md")
MISSING_FILES=()
for file in "${REQUIRED_FILES[@]}"; do
if [ ! -f "$file" ]; then
MISSING_FILES+=("$file")
fi
done
if [ ${#MISSING_FILES[@]} -ne 0 ]; then
echo -e "${RED}❌ Archivos faltantes:${NC}"
for file in "${MISSING_FILES[@]}"; do
echo " - $file"
done
exit 1
fi
echo -e "${GREEN}✅ Todos los archivos presentes${NC}"
# Clonar el repositorio del Space
echo ""
echo "Clonando Space..."
if [ -d "$SPACE_NAME" ]; then
echo -e "${YELLOW}⚠️ El directorio $SPACE_NAME ya existe${NC}"
read -p "¿Eliminarlo y continuar? (s/n): " DELETE_CONFIRM
if [ "$DELETE_CONFIRM" == "s" ] || [ "$DELETE_CONFIRM" == "S" ]; then
rm -rf "$SPACE_NAME"
else
echo -e "${YELLOW}❌ Despliegue cancelado${NC}"
exit 0
fi
fi
git clone "$REPO_URL" "$SPACE_NAME"
if [ $? -ne 0 ]; then
echo -e "${RED}❌ Error al clonar el repositorio${NC}"
echo "Asegúrate de:"
echo " 1. Haber creado el Space en HuggingFace"
echo " 2. Tener acceso al Space"
echo " 3. Usar las credenciales correctas"
exit 1
fi
echo -e "${GREEN}✅ Space clonado${NC}"
# Copiar archivos
echo ""
echo "Copiando archivos al Space..."
cp app.py "$SPACE_NAME/"
cp index.html "$SPACE_NAME/"
cp requirements.txt "$SPACE_NAME/"
cp README.md "$SPACE_NAME/"
if [ -f ".gitignore" ]; then
cp .gitignore "$SPACE_NAME/"
fi
echo -e "${GREEN}✅ Archivos copiados${NC}"
# Commit y push
echo ""
echo "Haciendo deploy..."
cd "$SPACE_NAME"
git add .
git commit -m "Deploy Osorno Runners v1.0"
echo ""
echo "Subiendo a HuggingFace..."
echo "(Se te pedirán tus credenciales de HuggingFace)"
echo ""
git push
if [ $? -ne 0 ]; then
echo -e "${RED}❌ Error al hacer push${NC}"
echo "Verifica tus credenciales de HuggingFace"
exit 1
fi
cd ..
# Limpiar
echo ""
read -p "¿Eliminar directorio temporal $SPACE_NAME? (s/n): " CLEANUP
if [ "$CLEANUP" == "s" ] || [ "$CLEANUP" == "S" ]; then
rm -rf "$SPACE_NAME"
echo -e "${GREEN}✅ Directorio limpiado${NC}"
fi
# Éxito
echo ""
echo "========================================"
echo -e "${GREEN}🎉 ¡DESPLIEGUE EXITOSO!${NC}"
echo "========================================"
echo ""
echo "Tu aplicación estará lista en 1-3 minutos en:"
echo -e "${GREEN}$REPO_URL${NC}"
echo ""
echo "Credenciales de prueba:"
echo " Usuario: USER / Password: 123"
echo " Admin: ADMIN / Password: 123"
echo ""
echo "¡Felicidades! 🏃‍♂️"
echo ""