Files
maverickApplicationsSite/.gitea/workflows/deploy-website.yaml

77 lines
2.3 KiB
YAML

name: Deploy Website
run-name: Deploying website changes by ${{ github.actor }}
on:
push:
branches: [ main ]
paths:
- '*.html'
- 'assets/**'
- 'css/**'
- 'js/**'
- 'images/**'
workflow_dispatch: # Now available in 1.24.2!
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Validate HTML
run: |
apt-get update && apt-get install -y tidy
find . -name "*.html" -exec tidy -q -e {} \;
echo "✅ HTML validation passed"
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
# Use relaxed host checking
echo "Host *" > ~/.ssh/config
echo " StrictHostKeyChecking no" >> ~/.ssh/config
echo " UserKnownHostsFile /dev/null" >> ~/.ssh/config
chmod 600 ~/.ssh/config
- name: Deploy website
run: |
# Install rsync
echo "📦 Installing rsync..."
apt-get update && apt-get install -y rsync
SERVER_IP="192.168.4.56"
DEPLOY_USER="deploy"
WEBSITE_DIR="/media/stephen/Storage_Linux/infrastructure/services/websites/maverickApplications"
echo "📁 Syncing files to server..."
rsync -avz --delete \
-e "ssh -i ~/.ssh/deploy_key" \
./ $DEPLOY_USER@$SERVER_IP:$WEBSITE_DIR/
echo "🔄 Restarting website container..."
ssh -i ~/.ssh/deploy_key $DEPLOY_USER@$SERVER_IP \
"cd $WEBSITE_DIR && docker compose restart maverick-website"
- name: Health check
run: |
echo "🏥 Waiting for container to restart..."
sleep 15
for i in {1..5}; do
if curl -f --connect-timeout 10 https://maverickapplications.com; then
echo "✅ Website is responding correctly!"
exit 0
fi
echo "⏳ Attempt $i failed, retrying in 10 seconds..."
sleep 10
done
echo "❌ Website health check failed"
exit 1
- name: Cleanup
if: always()
run: rm -f ~/.ssh/deploy_key