fix: 修复版本比较逻辑,确保正确处理VERSION文件与tag不同步的情况

- 同时检查git tag和VERSION文件的版本号
- 使用两者中较大的版本作为基准
- 避免因VERSION文件已包含新版本号而导致版本不递增的问题
This commit is contained in:
shaw
2025-07-24 14:06:54 +08:00
parent 48f11b4adf
commit f567ad0532

View File

@@ -63,9 +63,23 @@ jobs:
# 获取最新的tag版本
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
echo "Latest tag: $LATEST_TAG"
TAG_VERSION=${LATEST_TAG#v}
# 获取VERSION文件中的版本
FILE_VERSION=$(cat VERSION | tr -d '[:space:]')
echo "VERSION file: $FILE_VERSION"
# 比较tag版本和文件版本取较大值
function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
if version_gt "$FILE_VERSION" "$TAG_VERSION"; then
VERSION="$FILE_VERSION"
echo "Using VERSION file: $VERSION (newer than tag)"
else
VERSION="$TAG_VERSION"
echo "Using tag version: $VERSION (newer or equal to file)"
fi
# 从tag中提取版本号
VERSION=${LATEST_TAG#v}
echo "Current version: $VERSION"
echo "current_version=$VERSION" >> $GITHUB_OUTPUT