[release] Do not ignore tag exit code

* Prevent bad releases from shipping
* Use REL_HASH instead of HEAD for pushing to the channel

Bug: https://github.com/flutter/flutter/issues/139311
Change-Id: I891f0c2765315747dddb148dbee34a351283c3bc
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/52800
Commit-Queue: Casey Hillers <chillers@google.com>
Reviewed-by: Jesse Seales <jseales@google.com>
diff --git a/recipes/release/release_publish.resources/push_release.sh b/recipes/release/release_publish.resources/push_release.sh
index 028c77a..828d3fd 100644
--- a/recipes/release/release_publish.resources/push_release.sh
+++ b/recipes/release/release_publish.resources/push_release.sh
@@ -9,11 +9,16 @@
 git checkout $GIT_BRANCH
 git branch
 echo "##### TAGGING #####"
-git tag $TAG $REL_HASH || true
+if [ -z $FORCE_FLAG ]; then
+  git tag $TAG $REL_HASH
+else
+  # Ignore exit code if this is being forced
+  git tag $TAG $REL_HASH || true
+fi
 git remote set-url origin https://$GITHUB_USER:$TOKEN@github.com/flutter/$REPO.git
 git push origin $TAG || true
 if [ $REPO == 'flutter' ]
 then
   echo "##### PUSHING TO $RELEASE_CHANNEL #####"
-  git push origin HEAD:$RELEASE_CHANNEL $FORCE_FLAG
+  git push origin $REL_HASH:$RELEASE_CHANNEL $FORCE_FLAG
 fi