From: Anil Belur Date: Thu, 19 Jan 2023 11:34:27 +0000 (+1000) Subject: Fix: Ensure tag and object are pushed together X-Git-Tag: v0.85.0~2 X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F64%2F71164%2F5;p=releng%2Fglobal-jjb.git Fix: Ensure tag and object are pushed together 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 --- diff --git a/releasenotes/notes/fix-missing-tag-221e3263494b952a.yaml b/releasenotes/notes/fix-missing-tag-221e3263494b952a.yaml new file mode 100644 index 00000000..d22a3e1a --- /dev/null +++ b/releasenotes/notes/fix-missing-tag-221e3263494b952a.yaml @@ -0,0 +1,11 @@ +--- +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. diff --git a/shell/release-job.sh b/shell/release-job.sh index a4194388..56e37c3d 100644 --- a/shell/release-job.sh +++ b/shell/release-job.sh @@ -365,7 +365,12 @@ tag-git-repo(){ 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 fi fi } @@ -458,7 +463,20 @@ maven_release_file(){ 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