Files
nodarium/.gitea/scripts/create-release.sh
Max Richter 93ca436412
Some checks failed
🚀 Release / release (push) Failing after 3m36s
fix(ci): make scripts executable
2026-02-03 15:18:37 +01:00

74 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
TAG="$GITHUB_REF_NAME"
VERSION="${TAG#v}"
DATE=$(date +%Y-%m-%d)
echo "🚀 Creating release for $TAG (safe mode)"
# -------------------------------------------------------------------
# 1. Extract release notes from annotated tag
# -------------------------------------------------------------------
NOTES=$(git tag -l "$TAG" --format='%(contents)')
if [ -z "$NOTES" ]; then
echo "❌ Tag message is empty"
exit 1
fi
git checkout main
# -------------------------------------------------------------------
# 2. Update all package.json versions
# -------------------------------------------------------------------
echo "🔧 Updating package.json versions to $VERSION"
find . -name package.json -not -path "*/node_modules/*" | while read -r file; do
jq --arg v "$VERSION" '.version = $v' "$file" >"$file.tmp"
mv "$file.tmp" "$file"
done
# -------------------------------------------------------------------
# 3. Update CHANGELOG.md (prepend)
# -------------------------------------------------------------------
{
echo "## $TAG ($DATE)"
echo ""
echo "$NOTES"
echo ""
echo "---"
echo ""
cat CHANGELOG.md 2>/dev/null || true
} >CHANGELOG.tmp
mv CHANGELOG.tmp CHANGELOG.md
# -------------------------------------------------------------------
# 4. Create release commit
# -------------------------------------------------------------------
git config user.name "release-bot"
git config user.email "release-bot@ci"
git add CHANGELOG.md $(find . -name package.json -not -path "*/node_modules/*")
# Skip commit if nothing changed
if git diff --cached --quiet; then
echo "No changes to commit for release $TAG"
exit 0
fi
git commit -m "chore(release): $TAG"
# -------------------------------------------------------------------
# 5. Push changes
# -------------------------------------------------------------------
git push origin main
echo "✅ Release commit for $TAG created successfully (tag untouched)"