Spaces:
Running
Running
| name: Deploy Senti AI to Production | |
| on: | |
| push: | |
| branches: [main] | |
| jobs: | |
| deploy: | |
| name: Deploy to GCP VM | |
| runs-on: ubuntu-latest | |
| if: github.ref == 'refs/heads/main' | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Deploy via SSH to GCP | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.GCP_SSH_IP }} | |
| username: ${{ secrets.GCP_SSH_USER }} | |
| key: ${{ secrets.GCP_SSH_KEY }} | |
| port: 22 | |
| script: | | |
| echo "==== STARTING DEPLOYMENT ====" | |
| cd ~/senti_ai | |
| echo "1. Pulling latest codebase..." | |
| git pull origin main | |
| echo "2. Rebuilding frontend assets..." | |
| cd frontend | |
| npm ci | |
| npm run build | |
| cd .. | |
| echo "3. Restarting Docker containers..." | |
| docker compose down | |
| docker compose up -d --build | |
| echo "4. Running database migrations..." | |
| # Execute database migrations inside the running API gateway container | |
| docker compose exec -T senti-gateway python senti/scripts/migrate.py | |
| echo "5. Verifying backend status..." | |
| curl -f http://localhost:8000/health || exit 1 | |
| echo "==== DEPLOYMENT COMPLETED SUCCESSFULLY ====" | |