66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# Deployment Script for ASF TestArena
|
|
# Usage: ./deploy.sh
|
|
|
|
set -e # Exit on error
|
|
|
|
echo "Starting deployment..."
|
|
|
|
# Check for required commands
|
|
if ! command -v npm &> /dev/null; then
|
|
echo "Error: npm is not installed. Please install Node.js and npm."
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v docker-compose &> /dev/null; then
|
|
echo "Error: docker-compose is not installed."
|
|
exit 1
|
|
fi
|
|
|
|
# 1. Pull latest changes
|
|
echo "Pulling latest changes from git..."
|
|
git pull
|
|
|
|
# 2. Build Frontend
|
|
echo "Building frontend..."
|
|
cd frontend
|
|
npm install
|
|
npm run build
|
|
cd ..
|
|
|
|
# 3. Deploy Frontend
|
|
echo "Deploying frontend to /var/www/testarena..."
|
|
# Ensure directory exists
|
|
if [ ! -d "/var/www/testarena" ]; then
|
|
echo "Creating /var/www/testarena..."
|
|
sudo mkdir -p /var/www/testarena
|
|
sudo chown $USER:$USER /var/www/testarena
|
|
fi
|
|
|
|
# Copy files
|
|
if [ -d "frontend/dist" ]; then
|
|
sudo cp -r frontend/dist/* /var/www/testarena/
|
|
else
|
|
echo "Error: frontend/dist directory not found. Build failed?"
|
|
exit 1
|
|
fi
|
|
|
|
# 4. Restart Backend
|
|
echo "Restarting backend services..."
|
|
# Use sudo for docker-compose if needed
|
|
if groups | grep -q '\bdocker\b'; then
|
|
docker-compose down
|
|
docker-compose up -d --build
|
|
else
|
|
echo "User not in docker group, using sudo..."
|
|
sudo docker-compose down
|
|
sudo docker-compose up -d --build
|
|
fi
|
|
|
|
# 5. Reload Nginx (Optional, if config changed)
|
|
echo "Reloading Nginx..."
|
|
sudo systemctl reload nginx
|
|
|
|
echo "Deployment complete! Access at http://asf-testarena.duckdns.org"
|