mirror of
https://github.com/Warky-Devs/artemis-kit.git
synced 2026-11-10 06:18:47 +00:00
55 lines
1.3 KiB
Bash
Executable File
55 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Creates a changeset from commits since the last one, versions the
|
|
# package, tags the result, and pushes the tag to the git remote.
|
|
set -euo pipefail
|
|
|
|
BUMP="${BUMP:-patch}"
|
|
case "$BUMP" in
|
|
patch|minor|major) ;;
|
|
*) echo "BUMP must be patch, minor, or major (got: $BUMP)" >&2; exit 1 ;;
|
|
esac
|
|
|
|
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
|
|
LAST_CHANGESET_COMMIT=$(git log -1 --format=%H -- '.changeset/*.md' || true)
|
|
if [ -n "$LAST_CHANGESET_COMMIT" ]; then
|
|
RANGE="${LAST_CHANGESET_COMMIT}..HEAD"
|
|
else
|
|
RANGE="HEAD"
|
|
fi
|
|
|
|
COMMITS=$(git log --format='- %s' "$RANGE" -- . ':!.changeset')
|
|
if [ -z "$COMMITS" ]; then
|
|
echo "No commits found since the last changeset ($RANGE); nothing to release." >&2
|
|
exit 1
|
|
fi
|
|
|
|
CHANGESET_FILE=".changeset/release-$(date +%Y%m%d%H%M%S).md"
|
|
{
|
|
echo "---"
|
|
echo "\"$PACKAGE_NAME\": $BUMP"
|
|
echo "---"
|
|
echo
|
|
echo "$COMMITS"
|
|
} > "$CHANGESET_FILE"
|
|
|
|
echo "Created $CHANGESET_FILE:"
|
|
cat "$CHANGESET_FILE"
|
|
|
|
pnpm changeset version
|
|
|
|
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
TAG="v${NEW_VERSION}"
|
|
|
|
if git rev-parse "$TAG" >/dev/null 2>&1; then
|
|
echo "Tag $TAG already exists" >&2
|
|
exit 1
|
|
fi
|
|
|
|
git add -A
|
|
git commit -m "RELEASING: Releasing 1 package(s)"
|
|
git tag "$TAG"
|
|
git push origin HEAD "$TAG"
|
|
|
|
echo "Released and pushed $TAG"
|