fix(ci): 发布前显式拉取附注 tag 对象,保证发布正文取自 tag message

actions/checkout 会把 tag 在本地重建为轻量 tag,%(contents) 退化为
commit message(首发的发布正文因此变成了修复提交的信息)。发布步骤
先 git fetch 显式拉取 tag 对象再提取附注。
This commit is contained in:
2026-10-01 16:14:10 +08:00
parent 2330d362f6
commit 0406dee7a4
+3 -1
View File
@@ -180,7 +180,9 @@ jobs:
VER: ${{ needs.meta.outputs.version }} VER: ${{ needs.meta.outputs.version }}
run: | run: |
set -euo pipefail set -euo pipefail
# 发布正文优先取附注 tag 的 message(awk 剥掉签名块与空行) # 发布正文优先取附注 tag 的 message。actions/checkout 会把 tag 重建为
# 轻量 tag(%(contents) 退化成 commit message),这里显式拉取 tag 对象
git fetch -q origin "refs/tags/$VER:refs/tags/$VER" --force --no-tags
notes="$(git for-each-ref "refs/tags/$VER" --format='%(contents)' | awk '/^-----BEGIN PGP SIGNATURE----$/{sig=1} !sig' | awk 'NF')" notes="$(git for-each-ref "refs/tags/$VER" --format='%(contents)' | awk '/^-----BEGIN PGP SIGNATURE----$/{sig=1} !sig' | awk 'NF')"
if gh release view "$VER" -R "$GITHUB_REPOSITORY" >/dev/null 2>&1; then if gh release view "$VER" -R "$GITHUB_REPOSITORY" >/dev/null 2>&1; then
echo "Release ${VER} 已存在,覆盖上传资产" echo "Release ${VER} 已存在,覆盖上传资产"