52 lines
1.3 KiB
Bash
52 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
function error_exit
|
|
{
|
|
echo "release: $1" 1>&2
|
|
exit 1
|
|
}
|
|
|
|
if [[ $# -eq 0 ]] ; then
|
|
error_exit "use ``npm run release [major|minor|patch|x.x.x]``"
|
|
fi
|
|
|
|
currentVersion=$(json -f package.json version)
|
|
|
|
if [[ $1 != 'patch' && $1 != 'minor' && $1 != 'major' ]]
|
|
then
|
|
nextVersion=$1
|
|
else
|
|
nextVersion=$(semver $currentVersion -i $1)
|
|
fi
|
|
|
|
semver $nextVersion -r ">$currentVersion" ||
|
|
error_exit "Cannot bump from $currentVersion to $nextVersion"
|
|
|
|
if ! npm owner ls | grep -q "$(npm whoami)"
|
|
then
|
|
error_exit "Not an owner of the npm repo, ask for it"
|
|
fi
|
|
|
|
currentBranch=$(git rev-parse --abbrev-ref HEAD)
|
|
if [[ $currentBranch != 'master' ]]; then
|
|
error_exit "You must be on master branch"
|
|
fi
|
|
|
|
if [[ -n $(git status --porcelain) ]]; then
|
|
error_exit "Release: Working tree is not clean (git status)"
|
|
fi
|
|
|
|
echo "module.exports = \"${nextVersion}\";" > version.js
|
|
|
|
yarn &&
|
|
mversion $nextVersion &&
|
|
yarn build &&
|
|
conventional-changelog --infile CHANGELOG.md --same-file --preset angular &&
|
|
doctoc --notitle --maxlevel 3 README.md &&
|
|
git add README.md CHANGELOG.md package.json bower.json version.js dist/ &&
|
|
git commit -m $nextVersion &&
|
|
git tag v$nextVersion &&
|
|
git push &&
|
|
git push --tags &&
|
|
npm publish || error_exit "Something went wrong, check log, be careful and start over"
|