From bef0082d8a1144e133976246eb0475968bc9cb56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E6=B1=82=E5=9C=A3=E5=89=91?= Date: Thu, 22 Jan 2026 14:20:42 +0800 Subject: [PATCH] 0.5.0 --- prepare_release.sh | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/prepare_release.sh b/prepare_release.sh index f3e2700..fe16a7e 100755 --- a/prepare_release.sh +++ b/prepare_release.sh @@ -46,7 +46,13 @@ if ! git diff-index --quiet HEAD --; then fi # 获取当前版本 -CURRENT_VERSION=$(grep -o '"version": "[^"].*"' "$MANIFEST_FILE" | cut -d'"' -f4) +if [ -f "$MANIFEST_FILE" ]; then + CURRENT_VERSION=$(python3 -c "import json; print(json.load(open('$MANIFEST_FILE'))['version'])") +else + echo "❌ 无法读取文件: $MANIFEST_FILE" + exit 1 +fi + echo "📦 当前版本: $CURRENT_VERSION" echo "" @@ -61,13 +67,19 @@ fi # 更新 manifest.json 中的版本号 if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then echo "📝 更新 manifest.json 中的版本号..." - # 使用 .bak 后缀以兼容 macOS 和 Linux sed - sed -i.bak "s/"version": "$CURRENT_VERSION"/"version": "$NEW_VERSION"/" "$MANIFEST_FILE" + # 使用正则匹配替换,更稳健 + sed -i.bak "s/\"version\": \".*\"/\"version\": \"$NEW_VERSION\"/" "$MANIFEST_FILE" rm "$MANIFEST_FILE.bak" git add "$MANIFEST_FILE" - git commit -m "版本更新至 v$NEW_VERSION" - echo "✅ 版本号已更新" + + # 仅在有变更时提交 + if ! git diff-index --quiet HEAD --; then + git commit -m "版本更新至 v$NEW_VERSION" + echo "✅ 版本号已更新" + else + echo "⚠️ 版本号未发生实际变化或无法提交" + fi fi # 推送到 GitHub