diff --git a/release.sh b/release.sh index 1047646..40b930f 100755 --- a/release.sh +++ b/release.sh @@ -2,6 +2,22 @@ set -e cd "$(dirname "$0")" +if [ -n "$(git status --porcelain)" ]; then + echo "Uncommitted changes" + exit 1 +fi + +if [[ ! "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "Invalid version '$1'"; + exit 1; +fi + +# Update package version +contents="$(jq ".version = \"$1\"" package.json)" +echo -E "${contents}" > package.json +pnpm i +git add package.json pnpm-lock.yaml + CHANGELOG="CHANGELOG.md" VERSION=$(jq -r '.version' package.json) @@ -20,7 +36,7 @@ fi editor "$CHANGELOG" -git add package.json "$CHANGELOG" +git add "$CHANGELOG" git commit -m "chore(release): release v$VERSION" awk 'BEGIN{RS="(^|\n)## [^\n]+\n*"} NR==2 { print }' "$CHANGELOG" | git tag -as -F - --cleanup whitespace "$TAG"