Skip to content

feat: Step 5 - deep analysis pipeline (clone, analyze, AI report) #3

feat: Step 5 - deep analysis pipeline (clone, analyze, AI report)

feat: Step 5 - deep analysis pipeline (clone, analyze, AI report) #3

Workflow file for this run

name: Deploy to Production
on:
push:
branches: [main]
concurrency:
group: deploy-production
cancel-in-progress: false
jobs:
build:
name: Build & Validate
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build TypeScript
run: npm run build
- name: Lint
run: npm run lint --if-present
deploy:
name: Deploy to GCE
needs: build
runs-on: ubuntu-latest
timeout-minutes: 5
environment: production
steps:
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.GCE_HOST }}
username: ${{ secrets.GCE_USER }}
key: ${{ secrets.GCE_SSH_KEY }}
script_stop: true
script: |
cd /opt/PROMETHEUS/production/rda-production
bash scripts/deploy.sh
- name: Smoke test
run: |
sleep 10
STATUS=$(curl -sf -o /dev/null -w "%{http_code}" \
"https://forge-rrda.madewellrd.com" || echo "000")
if [ "$STATUS" != "200" ]; then
echo "❌ RDA dashboard check failed (HTTP $STATUS)"
exit 1
fi
echo "✅ RDA dashboard reachable (HTTP $STATUS)"