All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
124 lines
4.2 KiB
Bash
124 lines
4.2 KiB
Bash
#!/bin/bash
|
|
# Contact Messages System Deployment Script
|
|
# This script automates the deployment of the Contact Messages management system
|
|
|
|
set -e # Exit on any error
|
|
|
|
echo "╔══════════════════════════════════════════════════════════╗"
|
|
echo "║ Brand Master - Contact Messages System Deployment ║"
|
|
echo "╚══════════════════════════════════════════════════════════╝"
|
|
echo ""
|
|
|
|
# Configuration
|
|
NAMESPACE="my-apps"
|
|
MIGRATION_FILE="007_enhance_contact_messages.sql"
|
|
BACKEND_IMAGE="harbor.dvirlabs.com/my-apps/brand-master-backend:latest"
|
|
FRONTEND_IMAGE="harbor.dvirlabs.com/my-apps/brand-master-frontend:latest"
|
|
|
|
# Color codes
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Step 1: Apply Database Migration
|
|
echo -e "${YELLOW}Step 1: Applying database migration...${NC}"
|
|
if [ -f "./apply-migration.sh" ]; then
|
|
./apply-migration.sh "$MIGRATION_FILE"
|
|
echo -e "${GREEN}✓ Migration applied successfully${NC}"
|
|
else
|
|
echo -e "${RED}✗ Migration script not found!${NC}"
|
|
echo "Please run manually: ./apply-migration.sh $MIGRATION_FILE"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 2: Build Backend Image
|
|
echo -e "${YELLOW}Step 2: Building backend Docker image...${NC}"
|
|
cd backend
|
|
docker build -t "$BACKEND_IMAGE" .
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Backend image built successfully${NC}"
|
|
else
|
|
echo -e "${RED}✗ Backend build failed!${NC}"
|
|
exit 1
|
|
fi
|
|
cd ..
|
|
echo ""
|
|
|
|
# Step 3: Build Frontend Image
|
|
echo -e "${YELLOW}Step 3: Building frontend Docker image...${NC}"
|
|
cd frontend
|
|
docker build -t "$FRONTEND_IMAGE" .
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Frontend image built successfully${NC}"
|
|
else
|
|
echo -e "${RED}✗ Frontend build failed!${NC}"
|
|
exit 1
|
|
fi
|
|
cd ..
|
|
echo ""
|
|
|
|
# Step 4: Push Images to Harbor
|
|
echo -e "${YELLOW}Step 4: Pushing images to Harbor registry...${NC}"
|
|
docker push "$BACKEND_IMAGE"
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Backend image pushed successfully${NC}"
|
|
else
|
|
echo -e "${RED}✗ Backend push failed!${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
docker push "$FRONTEND_IMAGE"
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Frontend image pushed successfully${NC}"
|
|
else
|
|
echo -e "${RED}✗ Frontend push failed!${NC}"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 5: Deploy to Kubernetes
|
|
echo -e "${YELLOW}Step 5: Deploying to Kubernetes...${NC}"
|
|
cd brand-master-chart
|
|
helm upgrade brand-master . \
|
|
--namespace "$NAMESPACE" \
|
|
--set backend.image.tag=latest \
|
|
--set frontend.image.tag=latest \
|
|
--wait \
|
|
--timeout 5m
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Helm deployment successful${NC}"
|
|
else
|
|
echo -e "${RED}✗ Helm deployment failed!${NC}"
|
|
exit 1
|
|
fi
|
|
cd ..
|
|
echo ""
|
|
|
|
# Step 6: Verify Deployment
|
|
echo -e "${YELLOW}Step 6: Verifying deployment...${NC}"
|
|
echo "Checking pods status..."
|
|
kubectl get pods -n "$NAMESPACE" | grep brand-master
|
|
|
|
echo ""
|
|
echo "Checking backend logs..."
|
|
kubectl logs -n "$NAMESPACE" deployment/brand-master-backend --tail=20
|
|
|
|
echo ""
|
|
echo -e "${GREEN}╔══════════════════════════════════════════════════════════╗${NC}"
|
|
echo -e "${GREEN}║ Deployment Completed Successfully! ║${NC}"
|
|
echo -e "${GREEN}╚══════════════════════════════════════════════════════════╝${NC}"
|
|
echo ""
|
|
echo "Next Steps:"
|
|
echo "1. Test public contact form: https://brand-master.dvirlabs.com/contact"
|
|
echo "2. Test admin dashboard: https://brand-master.dvirlabs.com/admin"
|
|
echo "3. Verify contact messages management functionality"
|
|
echo ""
|
|
echo "Useful Commands:"
|
|
echo " - View backend logs: kubectl logs -n $NAMESPACE deployment/brand-master-backend -f"
|
|
echo " - View frontend logs: kubectl logs -n $NAMESPACE deployment/brand-master-frontend -f"
|
|
echo " - Check database: kubectl exec -it -n $NAMESPACE deployment/brand-master-postgres -- psql -U brand_master -d brand_master_db"
|
|
echo ""
|