diff --git a/scripts/release/find_latest_tag.js b/scripts/release/find_latest_tag.js index 4193c327dc6..dac5e0999e9 100644 --- a/scripts/release/find_latest_tag.js +++ b/scripts/release/find_latest_tag.js @@ -4,12 +4,12 @@ const execute = require('../utils/execute'); const [ version ] = process.argv.slice(2); if (!version) { - console.log('usage example: yarn node find_latest_tag.js v0.21.0'); + console.error('usage example: yarn node find_latest_tag.js v0.21.0'); process.exit(1); } (async () => { - const tags = (await execute('git tag -l --sort=-v:refname')); + const tags = await execute('git tag -l --sort=-v:refname'); const isPrerelease = semver.prerelease(version) !== null; const parsedVersion = semver.parse(version); @@ -39,7 +39,7 @@ if (!version) { } if (!result) { - console.log(`Can't find latest tag for the version ${version}`); + console.error(`Can't find latest tag for the version ${version}`); process.exit(1); } diff --git a/scripts/release/release.sh b/scripts/release/release.sh index 005433159ef..7b6ace1a52f 100755 --- a/scripts/release/release.sh +++ b/scripts/release/release.sh @@ -8,7 +8,29 @@ DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" # get current version PACKAGE_VERSION=$(cat $DIR/../../package.json|grep version|head -1|awk -F: '{ print $2 }'|sed 's/[", ]//g') -RELEASE_TYPE="$1" +cmd_usage="Usage: yarn release [options] + + Options: + -t --type - release or prerelease + -f --from - tag to build changelog from + -h --help - show help +" + +for i in "$@" +do +case ${i} in + -h|--help) + echo "$cmd_usage" + exit 0 + ;; + -t=*|--type=*) + RELEASE_TYPE="${i#*=}" + ;; + -f=*|--from=*) + LATEST_TAG="${i#*=}" + ;; +esac +done # if parameter is empty, get release type from current version if [ -z "$RELEASE_TYPE" ] @@ -23,7 +45,7 @@ fi if [[ $RELEASE_TYPE != "release" ]] && [[ $RELEASE_TYPE != "prerelease" ]] then - echo "release or prerelease are the only acceptable options" + echo cmd_usage exit 1 fi @@ -44,8 +66,11 @@ yarn node $DIR/bump_version.js "$RELEASE_TYPE" NEW_PACKAGE_VERSION=$(cat $DIR/../../package.json|grep version|head -1|awk -F: '{ print $2 }'|sed 's/[", ]//g') -# get last tag for changelog -LATEST_TAG=$(yarn node $DIR/find_latest_tag.js $NEW_PACKAGE_VERSION) +if [ -z "$LATEST_TAG" ] +then + # get last tag for changelog + LATEST_TAG=$(yarn node $DIR/find_latest_tag.js $NEW_PACKAGE_VERSION) +fi # generate changelog yarn node $DIR/generate_changelog.js $LATEST_TAG