blob: ba06bdcdaf95ed6648a9d97e3df540be93d5dc48 [file] [log] [blame]
#!/bin/sh
################################################################################
##
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
##
################################################################################
set -e
# Create a tag on the release branch for the Edgent version from gradle.properties/build_version
# A "release" tag is created unless directed to create a "release candidate"
# tag via "--as-rcnum <rc-num>"
# Specify "--from-rctag <rc-num>" to create the tag on the commit
# that has the release candidate <rc-num> tag.
# Prompts before taking actions unless "--nquery"
#
# Run from the root of the release management git clone.
. `dirname $0`/common.sh
setUsage "`basename $0` [--nquery] [--as-rcnum <rc-num>] [--from-rctag <rc-num>]"
handleHelp "$@"
NQUERY=
if [ "$1" == "--nquery" ]; then
NQUERY="--nquery"; shift
fi
RC_NUM=
if [ "$1" == "--as-rcnum" ]; then
shift; requireArg "$@"
RC_NUM=$1; shift
checkRcNum ${RC_NUM} || usage "Not a release candidate number \"${RC_NUM}\""
fi
FROM_RCTAG_NUM=
if [ "$1" == "--from-rctag" ]; then
shift; requireArg "$@"
FROM_RCTAG_NUM=$1; shift
checkRcNum ${FROM_RCTAG_NUM} || usage "Not a release candidate number \"${FROM_RCTAG_NUM}\""
fi
noExtraArgs "$@"
checkEdgentSourceRootGitDie
checkUsingMgmtCloneWarn || [ ${NQUERY} ] || confirm "Proceed using this clone?" || exit
VER=`getEdgentVer gradle`
RELEASE_BRANCH=`getReleaseBranch ${VER}`
TAG=`getReleaseTag ${VER} ${RC_NUM}`
TAG_COMMENT=`getReleaseTagComment ${VER} ${RC_NUM}`
TO_MSG="branch ${RELEASE_BRANCH}"
FROM_RCTAG=
if [ "${FROM_RCTAG_NUM}" ]; then
FROM_RCTAG=`getReleaseTag ${VER} ${FROM_RCTAG_NUM}`
TO_MSG="tag ${FROM_RCTAG}"
fi
[ ${NQUERY} ] || confirm "Proceed to add tag \"${TAG}\" to ${TO_MSG}?" || exit
echo "Creating tag ${TAG} to ${TO_MSG}"
(set -x; git checkout -q ${RELEASE_BRANCH})
if [ "$FROM_RCTAG" ]; then
(set -x; git tag -a ${TAG} -m "${TAG_COMMENT}" ${FROM_RCTAG})
else
(set -x; git tag -a ${TAG} -m "${TAG_COMMENT}")
fi
(set -x; git push origin ${TAG})
(set -x; git show ${TAG} -s)