Files
go-service/build.sh

85 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
set -e # Остановка при любой ошибке
APP_NAME="gpio-monitor-server"
CMD_PATH="./cmd/server"
BUILD_DIR="./build"
echo "СБОРКА GPIO MONITOR SERVER"
# ===== 1. СБОРКА TYPESCRIPT =====
echo ""
echo "Шаг 1/4: Сборка TypeScript фронтенда..."
cd ~/temp/golang/cmd/server/web
# Проверяем наличие node_modules
if [ ! -d "node_modules" ]; then
echo " Установка npm зависимостей..."
npm install
fi
# Собираем TypeScript
echo " Компиляция TypeScript в JavaScript..."
npm run build
if [ -d "dist" ]; then
echo " ✅ TypeScript скомпилирован успешно!"
echo " 📁 Скомпилированные файлы: $(ls dist/ | wc -l) файлов"
else
echo " ❌ Ошибка: папка dist не создана!"
exit 1
fi
# ===== 2. ПОДГОТОВКА GO СБОРКИ =====
echo ""
echo "Шаг 2/4: Подготовка Go сборки..."
cd ~/temp/golang
echo " Очистка старой сборки..."
rm -rf ${BUILD_DIR}
mkdir -p ${BUILD_DIR}
echo " Загрузка зависимостей..."
go mod tidy
# ===== 3. КОМПИЛЯЦИЯ GO =====
echo ""
echo "аг 3/4: Компиляция Go сервера..."
# Для Raspberry Pi (ARM64)
echo " Целевая платформа: Linux ARM64"
GOOS=linux GOARCH=arm64 go build -o ${BUILD_DIR}/${APP_NAME} ${CMD_PATH}
# Проверяем успешность сборки
if [ -f "${BUILD_DIR}/${APP_NAME}" ]; then
echo " ✅ Go сервер скомпилирован успешно!"
else
echo " ❌ Ошибка компиляции Go сервера!"
exit 1
fi
# ===== 4. ФИНАЛЬНЫЕ ДЕЙСТВИЯ =====
echo ""
echo "Шаг 4/4: Финальная проверка..."
# Проверяем размер
SIZE=$(ls -lh ${BUILD_DIR}/${APP_NAME} | awk '{print $5}')
echo " Размер бинарного файла: ${SIZE}"
# Проверяем наличие embed файлов
echo " Проверка встроенных файлов..."
if [ -d "cmd/server/web/dist" ]; then
echo " ✅ TypeScript файлы (dist) включены в сборку"
fi
if [ -d "cmd/server/web/css" ]; then
echo " ✅ CSS файлы включены в сборку"
fi
if [ -f "cmd/server/web/dashboard.html" ]; then
echo " ✅ HTML файлы включены в сборку"
fi
echo "СБОРКА ЗАВЕРШЕНА!"