fastapi_django_main_live / .github /workflows /deploy-to-huggingface.yml.backup
GitHub Action
🚀 Auto-deploy from GitHub Actions
7b7bdab
name: Deploy to Hugging Face Spaces
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
workflow_dispatch: # 手動実行も可能
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # 全履歴を取得
lfs: true # Git LFS サポート
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install huggingface_hub
- name: Configure Git for Hugging Face
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Action"
- name: Setup Hugging Face Token
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: |
# Hugging Face Hubにログイン
python -c "
from huggingface_hub import login
import os
token = os.environ.get('HF_TOKEN')
if token:
login(token=token)
print('✅ Hugging Face login successful')
else:
print('❌ HF_TOKEN not found in secrets')
exit(1)
"
- name: Clone Hugging Face Space
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: |
# Hugging Face Spaceをクローン
git clone https://huggingface.co/spaces/kenken999/fastapi_django_main_live hf_space
cd hf_space
# 認証情報を設定
git remote set-url origin https://oauth2:[email protected]/spaces/kenken999/fastapi_django_main_live
- name: Copy files and update Space
run: |
# 変更されたファイルをコピー
echo "📂 Copying updated files..."
# メインアプリケーションファイルをコピー
if [ -f "app.py" ]; then
cp app.py hf_space/
echo "✅ Copied app.py"
fi
# requirements.txt をコピー
if [ -f "requirements.txt" ]; then
cp requirements.txt hf_space/
echo "✅ Copied requirements.txt"
fi
# Dockerfile をコピー
if [ -f "Dockerfile" ]; then
cp Dockerfile hf_space/
echo "✅ Copied Dockerfile"
fi
# .env.example をコピー(環境変数テンプレート)
if [ -f ".env.example" ]; then
cp .env.example hf_space/
echo "✅ Copied .env.example"
fi
# 必要なディレクトリをコピー
echo "📁 Copying project directories..."
# controllers ディレクトリ(Gradioインターフェース)
if [ -d "controllers" ]; then
cp -r controllers hf_space/
echo "✅ Copied controllers/ directory"
fi
# mysite ディレクトリ(Djangoコア)
if [ -d "mysite" ]; then
cp -r mysite hf_space/
echo "✅ Copied mysite/ directory"
fi
# templates ディレクトリ
if [ -d "templates" ]; then
cp -r templates hf_space/
echo "✅ Copied templates/ directory"
fi
# static ディレクトリ
if [ -d "static" ]; then
cp -r static hf_space/
echo "✅ Copied static/ directory"
fi
# README.md を更新
echo "📝 Updating README.md with deployment info..."
cat > hf_space/README.md << 'EOF'
---
title: FastAPI Django Main Live
emoji: 🚀
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
license: mit
app_port: 7860
---
# FastAPI Django Main Live - Hugging Face Spaces
🚀 **AI-Driven Auto-Generation System with Gradio Interfaces**
## 🌟 特徴
- **GitHub Actions自動デプロイ**
- 🤖 **AI駆動の自動インターフェース生成**
- 📊 **マルチモーダル機能(画像→UI生成)**
- **8-9個のGradioインターフェース自動統合**
- 🎨 **動的UI生成システム**
- 🌐 **Hugging Face Spaces完全対応**
## 🚀 アクセス
メインアプリケーションにアクセスして、自動検出されたインターフェースを利用してください:
- `/` - メインダッシュボード
- `/gradio` - 統合Gradioインターフェース
- Auto-detected interfaces from controllers/
## 🔄 自動デプロイ
このスペースはGitHub Actionsで自動更新されます:
- `main`ブランチへのプッシュで自動デプロイ
- 手動実行も可能
- AI駆動システムの最新版を常に反映
## 📡 最終更新
Last deployed: $(date -u '+%Y-%m-%d %H:%M:%S UTC')
EOF
- name: Create or update app.py for Hugging Face Spaces
run: |
# 既存のapp.pyをそのまま使用(必要に応じてHugging Face用に調整)
echo "✅ Using existing app.py for Hugging Face Spaces"
# 環境変数テンプレートファイルを作成
cat > hf_space/.env.example << 'EOF'
# Hugging Face Spaces Environment Variables Template
# Copy this to .env and fill in your actual values
# API Keys
GROQ_API_KEY=your_groq_api_key_here
HF_TOKEN=your_huggingface_token_here
# Gradio Configuration
GRADIO_THEME=huggingface
GRADIO_SERVER_NAME=0.0.0.0
GRADIO_NUM_PORTS=1
# System Configuration
PYTHONUNBUFFERED=1
EOF
- name: Update requirements.txt for Hugging Face Spaces
run: |
# 既存のrequirements.txtをベースに、Hugging Face Spaces用に調整
if [ -f "requirements.txt" ]; then
echo "✅ Using existing requirements.txt"
else
# フォールバック用のrequirements.txtを作成
cat > hf_space/requirements.txt << 'EOF'
fastapi==0.109.2
uvicorn[standard]==0.24.0
gradio>=3.0.0
python-dotenv>=0.19.0
python-multipart>=0.0.6
jinja2>=3.1.2
groq>=0.4.0
Pillow>=9.0.0
aiofiles>=0.8.0
EOF
echo "✅ Created fallback requirements.txt for Hugging Face Spaces"
fi
- name: Create Dockerfile for Hugging Face Spaces
run: |
# 既存のDockerfileをベースに使用
if [ -f "Dockerfile" ]; then
echo "✅ Using existing Dockerfile"
# Hugging Face Spaces用にポート調整が必要な場合のみ修正
if ! grep -q "EXPOSE 7860" hf_space/Dockerfile; then
echo "📝 Adjusting Dockerfile for Hugging Face Spaces port..."
sed -i 's/EXPOSE [0-9]*/EXPOSE 7860/' hf_space/Dockerfile 2>/dev/null || true
fi
else
# フォールバック用のDockerfileを作成
cat > hf_space/Dockerfile << 'EOF'
FROM python:3.11-slim
WORKDIR /code
# システムの依存関係をインストール
RUN apt-get update && apt-get install -y \
gcc \
&& rm -rf /var/lib/apt/lists/*
# Pythonの依存関係をコピーしてインストール
COPY ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
# アプリケーションコードをコピー
COPY . /code/
# ポート7860を公開(Hugging Face Spaces標準)
EXPOSE 7860
# アプリケーションを起動
CMD ["python", "app.py"]
EOF
echo "✅ Created fallback Dockerfile for Hugging Face Spaces"
fi
- name: Deploy to Hugging Face Spaces
run: |
cd hf_space
# 変更があるかチェック
if [ -n "$(git status --porcelain)" ]; then
echo "📤 Changes detected, deploying to Hugging Face Spaces..."
# 変更をコミット
git add .
git commit -m "🚀 Auto-deploy from GitHub Actions $(date -u '+%Y-%m-%d %H:%M:%S UTC')
✅ Features updated:
- FastAPI Django Main Live (Latest)
- AI-driven auto-generation system
- Multiple Gradio interfaces auto-detection
- Multimodal image-to-UI generation
- Enhanced dynamic UI generation
🤖 Deployed via GitHub Actions"
# Hugging Face Spacesにプッシュ
git push origin main
echo "✅ Successfully deployed to Hugging Face Spaces!"
echo "🌐 Check your space at: https://huggingface.co/spaces/kenken999/fastapi_django_main_live"
else
echo "ℹ️ No changes detected, skipping deployment"
fi
- name: Deployment Summary
run: |
echo "## 🚀 Deployment Summary" >> $GITHUB_STEP_SUMMARY
echo "- **Status**: ✅ Success" >> $GITHUB_STEP_SUMMARY
echo "- **Target**: Hugging Face Spaces" >> $GITHUB_STEP_SUMMARY
echo "- **Space URL**: https://huggingface.co/spaces/kenken999/fastapi_django_main_live" >> $GITHUB_STEP_SUMMARY
echo "- **Timestamp**: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY
echo "- **Features**: FastAPI Django Main Live with AI-driven interfaces" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### 📊 AI-Driven System Features" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Auto-detection of Gradio interfaces" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Multimodal image-to-UI generation" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Dynamic React/Vue.js code generation" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Weather forecast AI integration" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Frontend generator with smart analysis" >> $GITHUB_STEP_SUMMARY