Address the problem where the tag is not pushed to the mainline
branch therefore causing the tag missing in the git history.
To fix this check commit count between the HEAD and
origin/${GERRIT_BRANCH} before the fetch and merge operation.
This is done to ensure that the tag lands on the target branch.
If the branch has already moved forward from the tagging point,
then a spur commit is created for the tag.
Change-Id: I675c815d4ac39244adf5168c1fbd051f8c626290
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
--- /dev/null
+---
+fixes:
+ - |
+ Address the problem where the tag is not pushed to the mainline
+ branch therefore causing the tag missing in the git history.
+
+ To fix this check commit count between the HEAD and
+ origin/${GERRIT_BRANCH} before the fetch and merge operation.
+ This is done to ensure that the tag lands on the target branch.
+ If the branch has already moved forward from the tagging point,
+ then a spur commit is created for the tag.
fi
git config user.name "$RELEASE_USERNAME"
git config user.email "$RELEASE_EMAIL"
fi
git config user.name "$RELEASE_USERNAME"
git config user.email "$RELEASE_EMAIL"
- git push origin "$GIT_TAG"
+ # Check if sentinal file exists
+ if [[ ! -f .testhash ]]; then
+ git push origin "${GERRIT_BRANCH}" "$GIT_TAG"
+ else
+ git push origin "$GIT_TAG"
+ fi
gunzip taglist.log.gz
cat "$PATCH_DIR"/taglist.log
popd
gunzip taglist.log.gz
cat "$PATCH_DIR"/taglist.log
popd
- git checkout "$(awk '{print $NF}' "$PATCH_DIR/taglist.log")"
+
+ # compare if the commit sha1 from taglist is the same origin/${GERRIT_BRANCH}
+ # ensure that the tag lands on the target branch
+ # forward from the tagging point, then a spur commit is created
+ # for the tag
+ taghash="$(awk '{print $NF}' "$PATCH_DIR/taglist.log")"
+ if [ "${taghash}" = $(git rev-parse origin/${GERRIT_BRANCH}) ]; then
+ git checkout "origin/${GERRIT_BRANCH}"
+ # sentinal file
+ touch .testhash
+ else
+ git checkout "${taghash}"
+ fi
+
git fetch "$PATCH_DIR/${PROJECT//\//-}.bundle"
git merge --ff-only FETCH_HEAD
nexus_release
git fetch "$PATCH_DIR/${PROJECT//\//-}.bundle"
git merge --ff-only FETCH_HEAD
nexus_release