/
sapertlt
/
layout_switcher
Обзор
Документация
Войти
/
sapertlt
/
layout_switcher
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
scripts/release.sh
137 строк
5 KB
Andrey Nikolaev
release: v0.1.3 — скрипты update/release, инструкции установки для production
15 июн 2026, 10:39
15 июн 2026, 10:39
5bbab7f
Код
Авторство
О чём код?
#!/usr/bin/env bash # ============================================================================ # Скрипт релиза: bump версии + commit + merge в production + push # # Использование: # scripts/release.sh # patch + авто-сообщение # scripts/release.sh "" "описание" # patch + своё сообщение # scripts/release.sh minor "описание" # minor + своё сообщение # scripts/release.sh major "описание" # major + своё сообщение # # Вызывается из Makefile: # make release # make release m="описание" # make release v=minor m="описание" # ============================================================================ set -euo pipefail # --- Цвета --- RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' info() { echo -e "${BLUE}[INFO]${NC} $*"; } success() { echo -e "${GREEN}[OK]${NC} $*"; } warn() { echo -e "${YELLOW}[ВНИМАНИЕ]${NC} $*"; } error() { echo -e "${RED}[ОШИБКА]${NC} $*"; exit 1; } SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_DIR" # --- Аргументы --- BUMP_TYPE="${1:-patch}" COMMIT_MSG="${2:-}" # Пустой тип = patch if [[ -z "$BUMP_TYPE" ]]; then BUMP_TYPE="patch" fi DEVELOP_BRANCH="develop" PRODUCTION_BRANCH="production" # ============================================================================ # Проверки # ============================================================================ CURRENT_BRANCH=$(git branch --show-current) if [[ "$CURRENT_BRANCH" != "$DEVELOP_BRANCH" ]]; then error "Релиз возможен только из ветки '$DEVELOP_BRANCH' (текущая: '$CURRENT_BRANCH')" fi # Проверяем, что нет незакоммиченных изменений до bump # (после bump будут изменения — это ожидаемо) echo "" echo -e "${BLUE}╔════════════════════════════════════════════╗${NC}" echo -e "${BLUE}║ Релиз Layout Switcher ║${NC}" echo -e "${BLUE}╚════════════════════════════════════════════╝${NC}" echo "" # ============================================================================ # 1. Инкремент версии # ============================================================================ OLD_VERSION=$(grep -oP "__version__\s*=\s*['\"]\\K[^'\"]*" \ src/layout_switcher/__init__.py) info "Инкремент версии ($BUMP_TYPE)..." bash scripts/bump-version.sh "$BUMP_TYPE" NEW_VERSION=$(grep -oP "__version__\s*=\s*['\"]\\K[^'\"]*" \ src/layout_switcher/__init__.py) # ============================================================================ # 2. Commit в develop # ============================================================================ # Формируем сообщение коммита if [[ -z "$COMMIT_MSG" ]]; then COMMIT_MSG="release: v${NEW_VERSION}" else COMMIT_MSG="release: v${NEW_VERSION} — ${COMMIT_MSG}" fi info "Коммит: $COMMIT_MSG" git add -A git commit -m "$COMMIT_MSG" success "Коммит в $DEVELOP_BRANCH: v${NEW_VERSION}" # ============================================================================ # 3. Merge в production # ============================================================================ info "Переключение на $PRODUCTION_BRANCH..." git checkout "$PRODUCTION_BRANCH" info "Слияние $DEVELOP_BRANCH → $PRODUCTION_BRANCH..." git merge "$DEVELOP_BRANCH" --no-edit success "Слияние завершено" # ============================================================================ # 4. Push обеих веток # ============================================================================ info "Отправка $PRODUCTION_BRANCH..." git push origin "$PRODUCTION_BRANCH" info "Переключение обратно на $DEVELOP_BRANCH..." git checkout "$DEVELOP_BRANCH" info "Отправка $DEVELOP_BRANCH..." git push origin "$DEVELOP_BRANCH" # ============================================================================ # Итог # ============================================================================ echo "" echo -e "${GREEN}============================================${NC}" echo -e "${GREEN} Релиз v${NEW_VERSION} завершён!${NC}" echo -e "${GREEN}============================================${NC}" echo "" echo " Версия: $OLD_VERSION → $NEW_VERSION" echo " Коммит: $COMMIT_MSG" echo " Ветки: $DEVELOP_BRANCH, $PRODUCTION_BRANCH — отправлены" echo "" echo " Обновить установку:" echo " make update" echo " # или: bash scripts/update.sh" echo ""