working on the article

This commit is contained in:
2025-07-27 21:21:39 +06:00
parent bf25c33b3f
commit e018e30975
5 changed files with 1714 additions and 2 deletions

76
scripts/release.sh Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/bash
# Скрипт для автоматизации релиза
# Использование: ./scripts/release.sh <version>
# Пример: ./scripts/release.sh 1.0.25
set -e # Остановить выполнение при ошибке
# Проверка аргументов
if [ $# -eq 0 ]; then
echo "Ошибка: Необходимо указать версию"
echo "Использование: $0 <version>"
echo "Пример: $0 1.0.25"
exit 1
fi
VERSION=$1
# Проверка формата версии (простая проверка)
if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Ошибка: Неверный формат версии. Используйте формат X.Y.Z (например, 1.0.25)"
exit 1
fi
echo "🚀 Начинаем релиз версии v$VERSION..."
# Проверяем, что мы в git репозитории
if ! git rev-parse --git-dir > /dev/null 2>&1; then
echo "Ошибка: Не найден git репозиторий"
exit 1
fi
# Проверяем, что нет незакоммиченных изменений
if ! git diff-index --quiet HEAD --; then
echo "Ошибка: Есть незакоммиченные изменения. Сначала закоммитьте их."
exit 1
fi
# Обновляем версию в main.go
echo "📝 Обновляем версию в main.go..."
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS
sed -i '' "s/const version = \"[^\"]*\"/const version = \"$VERSION\"/" main.go
else
# Linux
sed -i "s/const version = \"[^\"]*\"/const version = \"$VERSION\"/" main.go
fi
# Проверяем, что изменение применилось
if ! grep -q "const version = \"$VERSION\"" main.go; then
echo "Ошибка: Не удалось обновить версию в main.go"
exit 1
fi
echo "✅ Версия обновлена в main.go"
# Выполняем git команды
echo "📦 Добавляем изменения в git..."
git add .
echo "💾 Создаем коммит..."
git commit -m "Release v$VERSION"
echo "🏷️ Создаем тег..."
git tag -a "v$VERSION" -m "Release v$VERSION"
echo "🚀 Отправляем изменения и теги..."
git push
git push --tags
echo "🎉 Релиз v$VERSION успешно завершен!"
echo "📋 Выполненные действия:"
echo " - Обновлена версия в main.go"
echo " - Создан коммит с сообщением 'Release v$VERSION'"
echo " - Создан тег v$VERSION"
echo " - Изменения отправлены в удаленный репозиторий"