ci-actions/deploy-site/action.yaml

50 lines
1.6 KiB
YAML

name: Deploy Site
description: Deploy a static site to production
inputs:
site-name:
description: 'Site identifier (determines URL and deployment)'
required: true
source-dir:
description: 'Directory containing the built site'
required: false
default: '.'
runs:
using: composite
steps:
- name: Package site
shell: bash
run: |
echo "📦 Packaging ${{ inputs.site-name }}..."
cd "${{ inputs.source-dir }}"
tar czf /tmp/${{ inputs.site-name }}.tar.gz .
echo "✓ Packaged $(du -h /tmp/${{ inputs.site-name }}.tar.gz | cut -f1)"
- name: Deploy via API
shell: bash
run: |
echo "🚀 Deploying ${{ inputs.site-name }}..."
# TODO: Replace with actual deployment endpoint
# For now, use rsync + nomad dispatch
# Extract to deployment location
ssh deploy@alvin "mkdir -p /var/www/sites/${{ inputs.site-name }}"
scp /tmp/${{ inputs.site-name }}.tar.gz deploy@alvin:/tmp/
ssh deploy@alvin "cd /var/www/sites/${{ inputs.site-name }} && tar xzf /tmp/${{ inputs.site-name }}.tar.gz"
# Trigger deployment
ssh deploy@alvin "nomad job dispatch -meta site=${{ inputs.site-name }} deploy-site"
echo "✅ Deployed!"
- name: Show deployment info
shell: bash
run: |
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Site: ${{ inputs.site-name }}"
echo "URL: https://${{ inputs.site-name }}.toph.so"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"