-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdeploy.sh
More file actions
57 lines (45 loc) · 1.45 KB
/
deploy.sh
File metadata and controls
57 lines (45 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
# 🎰 GambleCodez Fly.io Deployment Script
echo "🚀 Deploying GambleCodez to Fly.io..."
# Exit on any error
set -e
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# ✅ Check Node.js
if ! command -v node &> /dev/null; then
echo -e "${RED}Node.js not found. Install Node.js 20+ before deploying.${NC}"
exit 1
fi
# ✅ Check Node.js version
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$NODE_VERSION" -lt 18 ]; then
echo -e "${RED}Node.js version 18+ is required. Found: $(node -v)${NC}"
exit 1
fi
echo -e "${GREEN}✅ Node.js version $(node -v) OK${NC}"
# ✅ Install dependencies
echo -e "${YELLOW}📦 Installing production dependencies...${NC}"
npm ci --only=production
# ✅ Build app
echo -e "${YELLOW}🔨 Building the application...${NC}"
npm run build
# ✅ Run DB migrations if Drizzle is used
echo -e "${YELLOW}🗃️ Running database migrations...${NC}"
npm run db:push || {
echo -e "${RED}❌ Drizzle migration failed. Check database config.${NC}"
exit 1
}
echo -e "${GREEN}✅ DB migration complete${NC}"
# ✅ Deploy to Fly
echo -e "${YELLOW}✈️ Deploying via Fly.io...${NC}"
flyctl deploy --config fly.toml || {
echo -e "${RED}❌ Fly.io deployment failed.${NC}"
exit 1
}
echo ""
echo -e "${GREEN}🎉 Fly.io deployment successful!${NC}"
echo -e "${GREEN}🔗 App live at: https://$(grep -m1 'app =' fly.toml | awk '{print $3}' | tr -d '"' ).fly.dev${NC}"
echo ""