120 lines
3.2 KiB
Bash
Executable File
120 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# SkyArtShop - Rebuild and Deploy Script
|
|
# Run this script after making changes to your code
|
|
|
|
set -e # Exit on error
|
|
|
|
echo "========================================"
|
|
echo " SkyArtShop - Rebuild & Deploy"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# Colors
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
# Change to project directory
|
|
cd /var/www/SkyArtShop
|
|
|
|
# Step 1: Build
|
|
echo -e "${YELLOW}[1/5] Building application...${NC}"
|
|
dotnet build SkyArtShop.csproj -c Release
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Build successful${NC}"
|
|
else
|
|
echo -e "${RED}✗ Build failed${NC}"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 2: Clean and Publish
|
|
echo -e "${YELLOW}[2/5] Cleaning old publish directory...${NC}"
|
|
rm -rf ./publish_temp
|
|
mkdir -p ./publish_temp
|
|
|
|
echo -e "${YELLOW}[2/5] Publishing to ./publish_temp...${NC}"
|
|
dotnet publish SkyArtShop.csproj -c Release -o ./publish_temp --no-build
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Publish successful${NC}"
|
|
else
|
|
echo -e "${RED}✗ Publish failed${NC}"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 3: Stop service and swap directories
|
|
echo -e "${YELLOW}[3/5] Stopping application...${NC}"
|
|
sudo systemctl stop skyartshop
|
|
sleep 1
|
|
|
|
echo -e "${YELLOW}[3/5] Swapping publish directories...${NC}"
|
|
if [ -d "./publish" ]; then
|
|
sudo rm -rf ./publish_old
|
|
sudo mv ./publish ./publish_old
|
|
fi
|
|
mv ./publish_temp ./publish
|
|
|
|
echo -e "${YELLOW}[3/5] Setting permissions...${NC}"
|
|
sudo chown -R www-data:www-data ./publish
|
|
sudo chmod +x ./publish/SkyArtShop.dll
|
|
echo -e "${GREEN}✓ Permissions set${NC}"
|
|
echo ""
|
|
|
|
# Step 4: Restart services
|
|
echo -e "${YELLOW}[4/5] Restarting services...${NC}"
|
|
sudo systemctl restart skyartshop
|
|
echo " Waiting for application to start..."
|
|
sleep 5
|
|
|
|
if systemctl is-active --quiet skyartshop; then
|
|
echo -e "${GREEN}✓ Application restarted${NC}"
|
|
else
|
|
echo -e "${RED}✗ Application failed to start${NC}"
|
|
echo "Check logs: sudo journalctl -u skyartshop.service -n 50"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 5: Verify
|
|
echo -e "${YELLOW}[5/5] Verifying deployment...${NC}"
|
|
echo " Waiting for application to be ready..."
|
|
sleep 3
|
|
|
|
# Test website
|
|
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost 2>/dev/null)
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
echo -e "${GREEN}✓ Website responding (HTTP $HTTP_CODE)${NC}"
|
|
else
|
|
echo -e "${RED}✗ Website not responding (HTTP $HTTP_CODE)${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Test CSS
|
|
CSS_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost/assets/css/main.css 2>/dev/null)
|
|
if [ "$CSS_CODE" = "200" ]; then
|
|
echo -e "${GREEN}✓ CSS loading (HTTP $CSS_CODE)${NC}"
|
|
else
|
|
echo -e "${RED}✗ CSS not loading (HTTP $CSS_CODE)${NC}"
|
|
fi
|
|
|
|
# Test JS
|
|
JS_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost/assets/js/main.js 2>/dev/null)
|
|
if [ "$JS_CODE" = "200" ]; then
|
|
echo -e "${GREEN}✓ JavaScript loading (HTTP $JS_CODE)${NC}"
|
|
else
|
|
echo -e "${RED}✗ JavaScript not loading (HTTP $JS_CODE)${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo -e "${GREEN}✓ Deployment Complete!${NC}"
|
|
echo "========================================"
|
|
echo ""
|
|
echo "Website: http://localhost"
|
|
echo "Domain: http://skyarts.ddns.net"
|
|
echo ""
|
|
echo "To view logs: sudo journalctl -u skyartshop.service -f"
|