Files
2025-03-05 15:16:45 +08:00

72 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
set -e
cd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # scripts/
cd ../ # store.js project root
VERSION=$1
if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "$VERSION is not a valid semver (e.g 2.1.3)"
exit -1
fi
GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
if [ "$GIT_BRANCH" != "master" ]; then
echo "release.sh must be called from branch master (current: $GIT_BRANCH)"
exit -1
fi
if ! git diff-index --quiet HEAD --; then
echo "git repo is dirty. Commit all changes before using release.sh"
exit -1
fi
echo
echo "> Bump package.json version:"
echo
sed -E s/'"version"\: "[0-9]+\.[0-9]+\.[0-9]+"'/'"version"\: "'$VERSION'"'/ package.json \
> /tmp/package.json && \
mv /tmp/package.json package.json
cat package.json | grep $VERSION -C 1
echo
echo "> Bump store-engine.js version:"
echo
sed -E s/"version\: '[0-9]+\.[0-9]+\.[0-9]+'"/"version\: '$VERSION'"/ src/store-engine.js \
> /tmp/store-engine.js && \
mv /tmp/store-engine.js src/store-engine.js
cat src/store-engine.js | grep $VERSION -C 1
if [[ ! `git diff --stat` =~ "2 files changed, 2 insertions(+), 2 deletions(-)" ]]; then
echo "WARNING! Expected exactly 2 changes in 2 files after replacing version number. Bailing! (check git status and git diff)"
exit -1
fi
echo
while true; do
read -p "> Ready to build, commit, tag and release v$VERSION? (y/n): " yn
case $yn in
[Yy]* ) break;;
[NnQq]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
echo
echo "> Build dists"
node scripts/compile-builds.js
echo
echo "> git commit/push/tag/push --tags"
set -x
git add dist/* package.json src/store-engine.js
git commit -m "v$VERSION"
git push $ORIGIN $BRANCH
git tag -a "v$VERSION" -m "Tag v$VERSION"
git push --tags
set +x
echo
echo "> npm publish"
npm publish