mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2025-11-16 01:29:55 +00:00
Исправления в ветке auth-feature
This commit is contained in:
114
deploy/4.build-binaries.sh
Executable file
114
deploy/4.build-binaries.sh
Executable file
@@ -0,0 +1,114 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 🚀 LCG Binary Build Script
|
||||
# Скрипт для сборки бинарных файлов с помощью goreleaser на хосте
|
||||
|
||||
set -e
|
||||
|
||||
# Цвета для вывода
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Функция для вывода сообщений
|
||||
log() {
|
||||
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
|
||||
}
|
||||
|
||||
success() {
|
||||
echo -e "${GREEN}✅ $1${NC}"
|
||||
}
|
||||
|
||||
warning() {
|
||||
echo -e "${YELLOW}⚠️ $1${NC}"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo -e "${RED}❌ $1${NC}"
|
||||
}
|
||||
|
||||
# Параметры
|
||||
VERSION=${1:-"dev"}
|
||||
# CLEAN=${2:-"true"}
|
||||
|
||||
# Записываем версию в файл VERSION.txt (в корневой директории проекта)
|
||||
echo "$VERSION" > VERSION.txt
|
||||
log "📝 Версия записана в VERSION.txt: $VERSION"
|
||||
|
||||
log "🚀 Сборка бинарных файлов LCG с goreleaser..."
|
||||
|
||||
# Проверяем наличие goreleaser
|
||||
if ! command -v goreleaser &> /dev/null; then
|
||||
error "goreleaser не найден. Установите goreleaser:"
|
||||
echo " curl -sL https://github.com/goreleaser/goreleaser/releases/latest/download/goreleaser_Linux_x86_64.tar.gz | tar -xz -C /usr/local/bin goreleaser"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Проверяем наличие Go
|
||||
if ! command -v go &> /dev/null; then
|
||||
error "Go не найден. Установите Go для сборки."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Переходим в корневую директорию проекта
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
log "📁 Рабочая директория: $(pwd)"
|
||||
log "📁 Папка dist будет создана в: $(pwd)/dist"
|
||||
|
||||
# Очищаем предыдущие сборки если нужно
|
||||
# if [ "$CLEAN" = "true" ]; then
|
||||
# log "🧹 Очистка предыдущих сборок..."
|
||||
# rm -rf dist/
|
||||
# goreleaser clean
|
||||
# fi
|
||||
|
||||
# Проверяем наличие .goreleaser.yaml
|
||||
if [ ! -f "deploy/.goreleaser.yaml" ]; then
|
||||
error "Файл .goreleaser.yaml не найден в папке deploy/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Копируем конфигурацию goreleaser в корень проекта
|
||||
log "📋 Копирование конфигурации goreleaser..."
|
||||
cp deploy/.goreleaser.yaml .goreleaser.yaml
|
||||
|
||||
# Устанавливаем переменные окружения для версии
|
||||
export GORELEASER_CURRENT_TAG="$VERSION"
|
||||
|
||||
# Собираем бинарные файлы
|
||||
log "🏗️ Сборка бинарных файлов для всех платформ..."
|
||||
goreleaser build --snapshot --clean
|
||||
|
||||
# Проверяем результат
|
||||
if [ -d "dist" ]; then
|
||||
log "📊 Собранные бинарные файлы:"
|
||||
find dist -name "lcg_*" -type f | while read -r binary; do
|
||||
echo " $binary ($(stat -c%s "$binary") bytes, $(file "$binary" | cut -d: -f2))"
|
||||
done
|
||||
|
||||
success "🎉 Бинарные файлы успешно собраны!"
|
||||
|
||||
# Показываем структуру dist/
|
||||
log "📁 Структура папки dist/:"
|
||||
tree -h dist/ 2>/dev/null || find dist -type f | sort
|
||||
|
||||
else
|
||||
error "Папка dist/ не создана. Проверьте конфигурацию goreleaser."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Очищаем временный файл конфигурации
|
||||
rm -f .goreleaser.yaml
|
||||
|
||||
success "🎉 Сборка бинарных файлов завершена!"
|
||||
|
||||
# Показываем команды для Docker сборки
|
||||
echo ""
|
||||
log "📝 Следующие шаги:"
|
||||
echo " cd deploy"
|
||||
echo " docker buildx build --platform linux/amd64,linux/arm64 --tag your-registry.com/lcg:$VERSION --push ."
|
||||
echo " # или используйте скрипт:"
|
||||
echo " ./5.build-docker.sh your-registry.com/lcg $VERSION"
|
||||
Reference in New Issue
Block a user