ToolJet/release-scripts/tag-and-push.sh

51 lines
1.4 KiB
Bash

#!/bin/sh
set -e
BASE_DIR="$(cd "$(dirname "$0")/.." && pwd)"
BASE_VERSION_FILE="$BASE_DIR/.version"
SERVER_VERSION_FILE="$BASE_DIR/server/.version"
FRONTEND_VERSION_FILE="$BASE_DIR/frontend/.version"
# Read first line of each version file (trim spaces)
BASE_VERSION=$(head -n 1 "$BASE_VERSION_FILE" | tr -d '[:space:]')
SERVER_VERSION=$(head -n 1 "$SERVER_VERSION_FILE" | tr -d '[:space:]')
FRONTEND_VERSION=$(head -n 1 "$FRONTEND_VERSION_FILE" | tr -d '[:space:]')
# Check versions match
if [ "$BASE_VERSION" != "$SERVER_VERSION" ] || [ "$BASE_VERSION" != "$FRONTEND_VERSION" ]; then
echo "❌ Version mismatch detected!"
echo "Base: $BASE_VERSION"
echo "Server: $SERVER_VERSION"
echo "Frontend: $FRONTEND_VERSION"
exit 1
fi
RELEASE_VERSION="v$BASE_VERSION"
echo "Are you sure you want to release version - $RELEASE_VERSION $BASE_DIR? (y/n)"
read CONFIRM
if [ "$CONFIRM" != "y" ]; then
echo "❌ Release aborted."
exit 1
fi
echo "✅ Starting release process for $RELEASE_VERSION..."
# Tag & push in base
cd "$BASE_DIR"
git tag "$RELEASE_VERSION"
git push origin "$RELEASE_VERSION"
# Tag & push in server/ee
cd "$BASE_DIR/server/ee"
git tag "$RELEASE_VERSION"
git push origin "$RELEASE_VERSION"
# Tag & push in frontend/ee
cd "$BASE_DIR/frontend/ee"
git tag "$RELEASE_VERSION"
git push origin "$RELEASE_VERSION"
echo "🎉 Successfully released $RELEASE_VERSION"