From db54abe116389ef0bfc4e3d3f0cf9179d4ad7223 Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Wed, 24 Oct 2018 19:57:36 -0500 Subject: [PATCH] Add -t to branch-stx.sh to enable a tag-only mode We need to be able to tag final releases without creating a new branch. Changing the starting branch (formerly 'master') to be the same as the destination branch has the desired effect so the -t option does that in addition to skipping the automatic .gitreview update. Note that setting the source branch (SRC_BRANCH) to something other than master is also something we will need in the regualt branching mode now that we have default (working) branches in some of the staging repos set to names similar to stx/v1.2.3 to represent the starting point in the upstream repo of our working branch. Change-Id: Id0cb485a4f8a2ebd3feaf602a140f66ed3b91322 Signed-off-by: Dean Troyer --- release/branch-stx.sh | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/release/branch-stx.sh b/release/branch-stx.sh index 6a7b9284..febb6d78 100755 --- a/release/branch-stx.sh +++ b/release/branch-stx.sh @@ -11,6 +11,8 @@ # -m Extract the repo list from for starlingx # and stx-staging remotes # +# -t Set tag only (sets SRC_BRANCH == BRANCH) +# # Specify one or more direct repo URLs to branch (ie git remote) # These are appended to the list of repos extracted from the # manifest if one is specified. @@ -29,6 +31,10 @@ # BRANCH is the actual branch name, derived by adding 'm/' (for milestones) or # 'r/' (for periodic releases) to SERIES. # +# SRC_BRANCH is the starting point for the new branch. Needed when the working +# branch is not named 'master'. When SRC_BRANCH == BRANCH this is effectively +# a tag-only operation. +# # TAG is the release tag that represents the actual release, derived by adding # a 'patch' version to SERIES, initially '0'. If TAG is unset no tag is created. # @@ -47,7 +53,7 @@ set -e # Defaults MANIFEST="" -optspec="lm:n-:" +optspec="lm:nt-:" while getopts "$optspec" o; do case "${o}" in # Hack in longopt support @@ -73,6 +79,9 @@ while getopts "$optspec" o; do n) DRY_RUN=1 ;; + t) + TAG_ONLY=1 + ;; esac done shift $((OPTIND-1)) @@ -96,6 +105,14 @@ TAG=${TAG:-$SERIES.0} # The list of remotes to extract from MANIFEST REMOTES="starlingx stx-staging" +if [[ -n $TAG_ONLY ]]; then + # Force source and target branches to be the same + SRC_BRANCH=${BRANCH} +fi + +# The starting branch +SRC_BRANCH=${SRC_BRANCH:-master} + # This is where other scripts live that we need script_dir=$(realpath $(dirname $0)) @@ -136,7 +153,8 @@ function branch_repo { fi pushd $repo_dir >/dev/null - git checkout master + git checkout $SRC_BRANCH + git pull origin $SRC_BRANCH if ! git branch | grep $BRANCH; then # create branch @@ -162,7 +180,10 @@ function branch_repo { echo "### skipping push to $branch" fi - update_gitreview $branch + if [[ -z $TAG_ONLY ]]; then + # Skip .gitreview changes for tag-only mode + update_gitreview $branch + fi else # Do the Github way # push