File size: 2,266 Bytes
61d29fc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash

# Build and deploy React + FastAPI app to Databricks Apps

set -e

echo "πŸš€ Building Oral Health Policy Pulse for Databricks Apps..."

# Step 1: Build React frontend
echo ""
echo "πŸ“¦ Step 1/4: Building React frontend..."
cd frontend
npm install
npm run build
cd ..

# Step 2: Verify build output
echo ""
echo "βœ… Step 2/4: Verifying build..."
if [ -d "api/static" ]; then
    echo "   Frontend build successful! Static files ready."
else
    echo "   ❌ Frontend build failed - static files not found"
    exit 1
fi

# Step 3: Deploy to Databricks
echo ""
echo "☁️  Step 3/4: Deploying to Databricks..."

# Check if Databricks CLI is installed
if ! command -v databricks &> /dev/null; then
    echo "   ❌ Databricks CLI not found. Installing..."
    pip install databricks-cli
fi

# Check for required environment variables
if [ -z "$DATABRICKS_HOST" ] || [ -z "$DATABRICKS_TOKEN" ]; then
    echo "   ⚠️  Please set DATABRICKS_HOST and DATABRICKS_TOKEN environment variables"
    echo "   Example:"
    echo "   export DATABRICKS_HOST=https://your-workspace.cloud.databricks.com"
    echo "   export DATABRICKS_TOKEN=your_token_here"
    exit 1
fi

# Create or update secrets (if they don't exist)
echo "   Setting up secrets..."
databricks secrets create-scope --scope oral-health-app 2>/dev/null || true
databricks secrets put --scope oral-health-app --key host --string-value "$DATABRICKS_HOST" 2>/dev/null || true
databricks secrets put --scope oral-health-app --key token --string-value "$DATABRICKS_TOKEN" 2>/dev/null || true

if [ -n "$OPENAI_API_KEY" ]; then
    databricks secrets put --scope oral-health-app --key openai_key --string-value "$OPENAI_API_KEY" 2>/dev/null || true
fi

# Deploy the app
echo "   Deploying app to Databricks..."
databricks apps deploy oral-health-policy-pulse --source-dir . --config app.yaml

# Step 4: Get app URL
echo ""
echo "✨ Step 4/4: Deployment complete!"
echo ""
echo "πŸ“± Your app is being deployed to Databricks Apps"
echo "πŸ”— Access it at: ${DATABRICKS_HOST}/apps/oral-health-policy-pulse"
echo ""
echo "To monitor deployment status:"
echo "  databricks apps get oral-health-policy-pulse"
echo ""
echo "To view logs:"
echo "  databricks apps logs oral-health-policy-pulse"
echo ""