1
0
Fork 0
docsearch/scripts/release
Pixelastic 37d39a0297 Replace printf with echo
`printf` displays everything on the same line, and with the way yarn
itself outputs its error messages, it would override our custom
messages on the terminal, preventing us to know why things failed.

Using echo instead fixes the issue.

Other fixes are `shellcheck` warnings (`read` without `-r` will fail
on input containing `\`).
2018-11-07 14:56:41 +01:00

86 lines
2.3 KiB
Bash
Executable file

#!/usr/bin/env bash
set -e # exit when error
# When running through yarn, this variable is changed, preventing the publishing
# to actually work. We revert it to its default value.
export npm_config_registry='https://registry.npmjs.org/'
if ! npm owner ls | grep -q "$(npm whoami)"
then
echo "Release: Not an owner of the npm repo, ask for it"
exit 1
fi
currentBranch=$(git rev-parse --abbrev-ref HEAD)
if [ "$currentBranch" != 'master' ]; then
echo "Release: You must be on master"
exit 1
fi
if [[ -n $(git status --porcelain) ]]; then
echo "Release: Working tree is not clean (git status)"
exit 1
fi
echo
echo "Release: update working tree"
git pull origin master
git fetch origin --tags
echo "Release: npm install"
npm install
currentVersion=$(json version < package.json)
# header
echo ""
echo "Release: current version is $currentVersion"
echo "Release: a changelog will be generated only if a fix/feat/performance/breaking token is found in git log"
echo "Release: you must choose a new ve.rs.ion (semver)"
echo "Release: press q to exit the next screen"
echo ""
echo ""
# preview changelog
read -rp "=> Release: press [ENTER] to view changes since latest version.."
conventional-changelog --preset angular --output-unreleased | less
# choose and bump new version
echo "=> Release: please type the new chosen version > "
read -re newVersion
VERSION=$newVersion babel-node ./scripts/bump-package-version.js
# build new version
NODE_ENV=production VERSION=$newVersion npm run build
# update changelog
echo
echo "Release: update changelog"
changelog=$(conventional-changelog -p angular)
conventional-changelog --preset angular --infile CHANGELOG.md --same-file -r 0
# regenerate readme TOC
echo
echo "Release: generate TOCS"
npm run doctoc
# git add and tag
commitMessage="v$newVersion\n\n$changelog"
git add src/lib/version.js package.json CHANGELOG.md README.md CONTRIBUTING.md
echo "$commitMessage" | git commit --file -
git tag "v$newVersion"
echo
echo "Release: almost done, check everything in another terminal tab."
read -rp "=> Release: when ready, press [ENTER] to push to github and publish the package"
echo
echo "Release: push to github, publish on npm"
git push origin master
git push origin --tags
npm publish
echo "Release: Package was published to npm."