brand-master/deploy-contact-messages.sh
dvirlabs 437fe72e48
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Manage contact us messages
2026-05-08 18:40:12 +03:00

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 ""