mnemo_cards/tools/deploy/bump-version.sh
2025-11-27 22:24:21 +03:00

60 lines
2.2 KiB
Bash
Executable file

#!/bin/bash
set -e
echo "🔄 Starting version bump process..."
# Check if we're in the project root
if [ ! -f "mnemo_cards_web_v2/pubspec.yaml" ]; then
echo "❌ Error: This script must be run from the project root directory"
exit 1
fi
# Get current version from pubspec.yaml
CURRENT_VERSION=$(grep "^version:" mnemo_cards_web_v2/pubspec.yaml | cut -d' ' -f2 | tr -d "'\"")
echo "📊 Current version: $CURRENT_VERSION"
# Parse version components (format: major.minor.patch+build)
if [[ $CURRENT_VERSION =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)(\+([0-9]+))?$ ]]; then
MAJOR=${BASH_REMATCH[1]}
MINOR=${BASH_REMATCH[2]}
PATCH=${BASH_REMATCH[3]}
BUILD=${BASH_REMATCH[5]:-0}
# Increment patch version
NEW_PATCH=$((PATCH + 1))
NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH+$((BUILD + 1))"
else
echo "❌ Error: Invalid version format: $CURRENT_VERSION"
echo "Expected format: major.minor.patch+build"
exit 1
fi
echo "⬆️ New version: $NEW_VERSION"
# Update API config (remove +build part for display version)
DISPLAY_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS
sed -i '' "s/^version: .*/version: $NEW_VERSION/" mnemo_cards_web_v2/pubspec.yaml
sed -i '' "s/static const String appVersion = '.*';/static const String appVersion = '$DISPLAY_VERSION';/" mnemo_cards_web_v2/lib/domain/config/api_config_v2.dart
else
# Linux
sed -i "s/^version: .*/version: $NEW_VERSION/" mnemo_cards_web_v2/pubspec.yaml
sed -i "s/static const String appVersion = '.*';/static const String appVersion = '$DISPLAY_VERSION';/" mnemo_cards_web_v2/lib/domain/config/api_config_v2.dart
fi
echo "✅ Updated mnemo_cards_web_v2/pubspec.yaml"
echo "✅ Updated mnemo_cards_web_v2/lib/domain/config/api_config_v2.dart"
# Commit the changes
if [ -n "$(git status --porcelain)" ]; then
echo "📝 Committing version bump..."
git add mnemo_cards_web_v2/pubspec.yaml
git add mnemo_cards_web_v2/lib/domain/config/api_config_v2.dart
git commit -m "🔄 Bump version to $NEW_VERSION"
echo "✅ Version bump committed"
else
echo "⚠️ No changes to commit"
fi
echo "🎉 Version successfully bumped to $NEW_VERSION"