72 lines
1.8 KiB
Bash
Executable File
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
|