bayan-api / .github /workflows /deploy.yml
youssefreda9's picture
Use bayan10 HuggingFace org for Spaces deployment
fbd7b4f
Raw
History Blame
2.49 kB
name: Bayan CI/CD
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint-and-validate:
name: Validate Code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
- name: Install dependencies
run: pip install flask flask-cors python-dotenv
- name: Validate Flask app imports
run: |
cd src && python -c "
import sys; sys.path.insert(0, '.')
from app import app
print('✅ Flask app imports successfully')
# Check critical routes exist
rules = [rule.rule for rule in app.url_map.iter_rules()]
assert '/api/health' in rules, '/api/health route missing'
assert '/api/summarize' in rules, '/api/summarize route missing'
assert '/api/analyze' in rules, '/api/analyze route missing'
print('✅ All critical API routes registered')
"
- name: Validate build script
env:
SUPABASE_URL: "https://test.supabase.co"
SUPABASE_ANON_KEY: "test-key-1234"
run: python build.py
- name: Verify index.html was modified
run: |
grep -q "https://test.supabase.co" src/index.html && echo "✅ Supabase URL injected" || exit 1
grep -q "test-key-1234" src/index.html && echo "✅ Supabase key injected" || exit 1
health-check:
name: Post-Deploy Health Check
needs: lint-and-validate
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ubuntu-latest
steps:
- name: Wait for HuggingFace Spaces to deploy
run: sleep 120
- name: Check backend health
run: |
HEALTH_URL="${{ secrets.BACKEND_URL }}/api/health"
if [ -z "${{ secrets.BACKEND_URL }}" ]; then
HEALTH_URL="https://bayan10-bayan-api.hf.space/api/health"
fi
echo "Checking: $HEALTH_URL"
response=$(curl -s -w "\n%{http_code}" "$HEALTH_URL")
http_code=$(echo "$response" | tail -n1)
body=$(echo "$response" | head -n -1)
echo "Status: $http_code"
echo "Body: $body"
if [ "$http_code" = "200" ] || [ "$http_code" = "503" ]; then
echo "✅ Backend is responding"
else
echo "❌ Backend health check failed"
exit 1
fi