blob: a58f79289620519b9f24dbd9e8af191f2d07c101 [file] [log] [blame]
#!/usr/bin/env bash
dir_name=$(dirname $0)
source ${dir_name}/common.sh
prepareWorkingDir
latest_ver=$(latestNonRCVersion)
beta_ver="0.0.1-beta1"
if [ -z "$latest_ver" ]; then
info "Use ${YELLOW}$beta_ver${RESTORE} as the version number."
else
beta_ver=$(increaseBetaVersion "$latest_ver")
fi
beta_branch="$beta_ver-$(date "+%y%m%d")"
info "\nThe latest non-RC version is: ${CYAN}'$latest_ver'${RESTORE}"
info "This beta version number should be: ${CYAN}'$beta_ver'${RESTORE}"
info "The beta release branch name should be: ${CYAN}'$beta_branch'${RESTORE}."
is_remote_branch_exist=$(git branch -r | awk '/'"$beta_ver"'/ {print $0}')
if [ "$is_remote_branch_exist" ]; then
warning "Remote branch with beta version $beta_ver already exists, will quit."
exit 1
fi
latest_sha=$(git show --format=%h -s)
notice "\nMake sure the latest commit SHA on master is:"
notice "${GREEN}$latest_sha${RESTORE}"
notice "If it is not the branch-off point you want, update the $remote/master first."
notice "Also make sure you have the permisison to push branch onto your $remote."
read -e -p "Continue? [Y/n] " -n 1
shouldContinue=${REPLY:=y}
if [ ${shouldContinue,,} = n ]; then
info "Sure, bye."
exit 0
fi
stashLocalChanges
info "\nCreating local branch: ${YELLOW}$beta_branch${RESTORE}..."
git checkout -B "$beta_branch" "$latest_sha"
info "\nPushing ${YELLOW}$beta_branch${RESTORE} onto $remote...\n"
git push "$remote" "$beta_branch":"$beta_branch"
git branch --set-upstream-to="$remote/$beta_branch"
info "\n${GREEN}Done.${RESTORE}"
info "\nNOTICE: Now you've started the release process for $beta_ver, please work on the branch $beta_branch for bug fixes, no feature allowed submitting on it. Keep it sync with $remote/$beta_branch before your release."