uppy/bin/release
Kevin van Zonneveld 5f4f1cf17e
Refactor npm scripts, clean up unused ones (#1392)
Co-Authored-By: Artur Paikin <artur@arturpaikin.com>
2019-03-29 14:55:23 +01:00

70 lines
1.9 KiB
Bash
Executable file

#!/usr/bin/env bash
set -o pipefail
set -o errexit
set -o nounset
# Set magic variables for current file & dir
__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
__file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
__base="$(basename ${__file} .sh)"
__root="$(cd "$(dirname "${__dir}")" && pwd)"
if [[ ! "$@" =~ -y ]]; then
echo "Make sure to read https://uppy.io/docs/contributing#Releases!"
echo "Press Enter when ready, or Ctrl+C if you still need to do something."
echo "Use 'npm run release -- -y' to bypass this message."
read
fi
if [[ ! "$(npm get registry)" =~ https://registry\.npmjs\.(com|org)/? ]]; then
echo "Found unexpected npm registry: $(npm get registry)"
echo "Run this to fix:"
echo ""
echo "npm set registry https://registry.npmjs.org"
exit 1
fi
if ! npm whoami > /dev/null; then
echo "Not authenticated with npm. First do:"
echo ""
echo "npm login"
exit 1
fi
if ! which jq; then
echo "https://stedolan.github.io/jq/ needs to be installed and available in PATH to do a release."
exit 1
fi
perm="$(npm profile get --json | jq .tfa.mode? -r)"
if [ "$perm" == "auth-and-writes" ]; then
echo "Two-factor auth is enabled for publishing. This doesn't work well with lerna."
echo "Temporarily switch to authentication-only 2FA using the link below:"
echo ""
echo "https://www.npmjs.com/settings/$(npm whoami)/tfa"
echo ""
echo "You can re-enable 2FA for publishing using the same link after this release is complete."
exit 1
fi
set -o xtrace
# Update README before publishing `uppy`
# So up-to-date contributors are shown on the npm page.
npm run contributors:save
git add README.md
# Add readme file to the main `uppy` package.
cp README.md packages/uppy/README.md
npm run build:clean
FRESH=1 npm run build
git commit --allow-empty -m "Release"
lerna version --amend --no-push --exact
lerna publish from-git
git push
git push --tags