feat(release): introduce dedicated release script to replace flawed git push hook
All checks were successful
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 7s
Monorepo Pipeline / 🧪 Test (push) Successful in 1m4s
Monorepo Pipeline / 🧹 Lint (push) Successful in 2m50s
Monorepo Pipeline / 🏗️ Build (push) Successful in 2m21s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Image Processor (push) Has been skipped
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been skipped
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been skipped

This commit is contained in:
2026-02-27 21:03:54 +01:00
parent cb68e1fb5c
commit 32d3ff010a
3 changed files with 52 additions and 46 deletions

50
scripts/release.sh Executable file
View File

@@ -0,0 +1,50 @@
#!/usr/bin/env bash
set -e
VERSION=$1
if [ -z "$VERSION" ]; then
echo "Error: Missing version argument."
echo "Usage: pnpm release <version>"
echo "Example: pnpm release 1.9.0"
exit 1
fi
# Ensure version does not have 'v' prefix for the variable
VERSION=${VERSION#v}
TAG="v$VERSION"
echo "🚀 Starting release process for $TAG..."
# 1. Sync versions across monorepo
pnpm exec tsx scripts/sync-versions.ts -- "$TAG"
# 2. Check if anything changed
SYNC_FILES="package.json packages/*/package.json apps/*/package.json .env.example"
CHANGES=$(git status --porcelain $SYNC_FILES)
if [[ -n "$CHANGES" ]]; then
echo "📝 Version sync made changes. Committing and tagging..."
# Stage and commit
git add $SYNC_FILES
git commit -m "chore: release $TAG" --no-verify
else
echo "✨ Versions are already in sync."
fi
# 3. Tag and push
echo "🏷️ Tagging $TAG..."
git tag -f "$TAG" > /dev/null
echo "🚀 Pushing branch and tag to origin..."
CURRENT_BRANCH=$(git branch --show-current)
if [ -n "$CURRENT_BRANCH" ]; then
git push origin "$CURRENT_BRANCH" --no-verify
fi
git push origin "$TAG" --force --no-verify
echo ""
echo "✨ VERSIONS SYNCED & PUSHED SUCCESSFULLY ✨"
echo "✅ Release $TAG is complete!"
echo ""