Files
tg_tinder_bot/bin/create_release.sh
2025-09-18 14:19:49 +09:00

73 lines
2.6 KiB
Bash

#!/bin/bash
# Скрипт для создания релиза Telegram Tinder Bot
# Получение версии из package.json
VERSION=$(grep -m1 "version" package.json | cut -d'"' -f4)
RELEASE_NAME="tg-tinder-bot-v$VERSION"
RELEASE_DIR="bin/releases/$RELEASE_NAME"
echo "🚀 Создание релиза $RELEASE_NAME"
# Создание директории релиза
mkdir -p "$RELEASE_DIR"
# Очистка временных файлов
echo "🧹 Очистка временных файлов..."
rm -rf dist node_modules
# Установка зависимостей
echo "📦 Установка зависимостей production..."
npm ci --only=production
# Сборка проекта
echo "🔧 Сборка проекта..."
npm run build
# Копирование файлов релиза
echo "📋 Копирование файлов..."
cp -r dist "$RELEASE_DIR/"
cp -r src/locales "$RELEASE_DIR/dist/"
cp package.json package-lock.json .env.example "$RELEASE_DIR/"
cp -r bin/start_bot.* bin/install_ubuntu.sh "$RELEASE_DIR/"
cp README.md LICENSE "$RELEASE_DIR/" 2>/dev/null || echo "Файлы документации не найдены"
cp sql/consolidated.sql "$RELEASE_DIR/"
cp docker-compose.yml Dockerfile "$RELEASE_DIR/"
cp deploy.sh "$RELEASE_DIR/" && chmod +x "$RELEASE_DIR/deploy.sh"
# Создание README для релиза
cat > "$RELEASE_DIR/RELEASE.md" << EOL
# Telegram Tinder Bot v$VERSION
Эта папка содержит релиз Telegram Tinder Bot версии $VERSION.
## Содержимое
- \`dist/\` - Скомпилированный код
- \`package.json\` - Зависимости и скрипты
- \`.env.example\` - Пример конфигурации
- \`docker-compose.yml\` и \`Dockerfile\` - Для запуска через Docker
- \`consolidated.sql\` - SQL-скрипт для инициализации базы данных
- \`deploy.sh\` - Скрипт для простого деплоя
## Быстрый старт
1. Создайте файл \`.env\` на основе \`.env.example\`
2. Запустите бота одним из способов:
- Через Docker: \`./deploy.sh\`
- Через Node.js: \`node dist/bot.js\`
## Дата релиза
$(date "+%d.%m.%Y %H:%M")
EOL
# Архивирование релиза
echo "📦 Создание архива..."
cd bin/releases
zip -r "$RELEASE_NAME.zip" "$RELEASE_NAME"
cd ../..
echo "✅ Релиз создан успешно!"
echo "📂 Релиз доступен в: bin/releases/$RELEASE_NAME"
echo "📦 Архив релиза: bin/releases/$RELEASE_NAME.zip"