From b04e7be146d66ab3b4104a79ce43fd58779236af Mon Sep 17 00:00:00 2001 From: ci Date: Fri, 4 Sep 2026 08:36:17 +0200 Subject: [PATCH] fix: dereference annotated tag to its commit before the push comparison MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit release-commit.sh creates release tags with `git tag -a`, so `git rev-parse "$TAG"` returns the annotated tag object's own SHA, not the commit it points at. Comparing that directly against `git rev-parse HEAD` was therefore always false, so the atomic `git push --atomic origin HEAD:master refs/tags/$TAG` never fired — the release job has been pushing the branch alone and silently dropping every release tag (confirmed: v0.3.19 landed on master but was never pushed as a tag). `^{commit}` dereferences the tag to its target commit so the comparison actually matches. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01NnotyatakKNS4NLjDbfYw1 --- .gitea/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 4b14d2b..e1cc804 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -122,7 +122,7 @@ jobs: run: | VERSION=$(uv version --short) TAG="v$VERSION" - if git rev-parse "$TAG" >/dev/null 2>&1 && [ "$(git rev-parse "$TAG")" = "$(git rev-parse HEAD)" ]; then + if git rev-parse "$TAG" >/dev/null 2>&1 && [ "$(git rev-parse "$TAG^{commit}")" = "$(git rev-parse HEAD)" ]; then git push --atomic origin HEAD:master "refs/tags/$TAG" else echo "No new release commit/tag to push (already released, or nothing changed)"