Add website deployment workflow
This commit is contained in:
71
.gitea/workflows/deploy-website.yaml
Normal file
71
.gitea/workflows/deploy-website.yaml
Normal file
@ -0,0 +1,71 @@
|
||||
name: Deploy Website
|
||||
run-name: Deploying website changes by ${{ github.actor }}
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- '*.html'
|
||||
- 'assets/**'
|
||||
- 'css/**'
|
||||
- 'js/**'
|
||||
- 'images/**'
|
||||
|
||||
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
|
||||
|
||||
# Get your server's IP (replace with your actual IP)
|
||||
SERVER_IP="192.168.1.20" # Change this to your server's IP
|
||||
ssh-keyscan -H $SERVER_IP >> ~/.ssh/known_hosts
|
||||
|
||||
- name: Deploy website
|
||||
run: |
|
||||
# Server configuration
|
||||
SERVER_IP="192.168.1.20" # Your server IP
|
||||
DEPLOY_USER="deploy" # The user we just created
|
||||
WEBSITE_DIR="/media/stephen/Storage_Linux/infrastructure/services/websites/maverickApplications"
|
||||
|
||||
echo "📁 Syncing files to server..."
|
||||
rsync -avz --delete \
|
||||
-e "ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no" \
|
||||
./ $DEPLOY_USER@$SERVER_IP:$WEBSITE_DIR/
|
||||
|
||||
echo "🔄 Restarting website container..."
|
||||
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no $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
|
||||
Reference in New Issue
Block a user