39 lines
1.2 KiB
Bash
Executable File
39 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Refresh NextGen App by pulling latest code and restarting pods
|
|
|
|
BRANCH=$1
|
|
|
|
if [[ "$BRANCH" != "main" && "$BRANCH" != "dev" ]]; then
|
|
echo "Usage: $0 [main|dev]"
|
|
exit 1
|
|
fi
|
|
|
|
APP_DIR="/root/geocrop/apps/nextgen-$BRANCH"
|
|
DEPLOYMENT="next-gen-$BRANCH"
|
|
|
|
echo "=== Refreshing NextGen $BRANCH ==="
|
|
|
|
cd "$APP_DIR" || { echo "Directory $APP_DIR not found"; exit 1; }
|
|
|
|
echo "Pulling latest code..."
|
|
git pull origin "$BRANCH"
|
|
|
|
# Re-apply static serving patch if missing
|
|
INDEX_JS="server/src/index.js"
|
|
if ! grep -q "client/dist" "$INDEX_JS"; then
|
|
echo "Re-applying static serving patch to $INDEX_JS..."
|
|
sed -i '/\/\/ Start server/i \/\/ Serve static frontend files in production\napp.use(express.static(path.join(__dirname, "../../client/dist")));\napp.get("*", (req, res) => {\n res.sendFile(path.join(__dirname, "../../client/dist/index.html"));\n});\n' "$INDEX_JS"
|
|
fi
|
|
|
|
echo "Installing server dependencies..."
|
|
cd server && npm install --production && cd ..
|
|
|
|
echo "Building client..."
|
|
cd client && npm install --include=dev && npm run build && cd ..
|
|
|
|
echo "Restarting Kubernetes deployment..."
|
|
kubectl rollout restart deployment "$DEPLOYMENT" -n nextgen
|
|
|
|
echo "Done! Monitoring rollout..."
|
|
kubectl rollout status deployment "$DEPLOYMENT" -n nextgen
|