I'm used to using rake release on the main branch when going to release. That handles the git tag and gem push.
If I do rake release first, it would end up pushing a tag, and then publishing. If I'm using the v* tag to push to gem, wouldn't it end up trying to push a gem that exists?