infinite-agents-public/.github/workflows/deploy-droplet.yml

68 lines
1.6 KiB
YAML

name: Deploy to DigitalOcean Droplet
on:
push:
branches:
- main
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: npm ci
- name: Generate dashboard
run: python3 generate_index.py
- name: Deploy to Droplet
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.DROPLET_HOST }}
username: ${{ secrets.DROPLET_USER }}
key: ${{ secrets.DROPLET_SSH_KEY }}
script: |
# Navigate to deployment directory
cd /var/www/agents.jeffemmett.com || exit 1
# Pull latest changes
git fetch origin main
git reset --hard origin/main
# Install dependencies and generate dashboard
npm ci
python3 generate_index.py
# Set proper permissions
chown -R www-data:www-data /var/www/agents.jeffemmett.com
# Reload nginx
systemctl reload nginx
echo "✅ Deployment completed successfully!"
- name: Notify deployment status
if: always()
run: |
if [ ${{ job.status }} == 'success' ]; then
echo "🚀 Successfully deployed to https://agents.jeffemmett.com"
else
echo "❌ Deployment failed"
exit 1
fi