47 lines
1.3 KiB
YAML
47 lines
1.3 KiB
YAML
name: Deploy to Production
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Deploy to nexus-vector
|
|
uses: appleboy/ssh-action@master
|
|
with:
|
|
host: nexus-vector
|
|
username: admin
|
|
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
script: |
|
|
cd /srv/containers/ca-grow-ops-manager
|
|
|
|
echo "📥 Pulling latest code..."
|
|
git pull origin main
|
|
|
|
echo "🔨 Rebuilding containers..."
|
|
docker compose build --no-cache
|
|
|
|
echo "🗄️ Running database migrations..."
|
|
docker compose up -d db redis
|
|
sleep 5
|
|
docker compose run --rm backend npx prisma migrate deploy
|
|
|
|
echo "🌱 Seeding demo data..."
|
|
docker compose run --rm backend node prisma/seed.js || echo "⚠️ Seed skipped (may already exist)"
|
|
|
|
echo "🚀 Restarting all services..."
|
|
docker compose up -d
|
|
|
|
echo "✅ Deployment complete!"
|
|
docker compose ps
|
|
|
|
echo "🏥 Health check..."
|
|
sleep 10
|
|
curl -f http://localhost:8010/api/healthz || echo "⚠️ Health check failed"
|