develop_sky #3
@ -43,6 +43,54 @@ jobs:
|
||||
PATCH=$(echo $BASE_VERSION | cut -d'.' -f3)
|
||||
echo "📌 Version components: Major=$MAJOR, Minor=$MINOR, Patch=$PATCH"
|
||||
|
||||
# 计算下一个版本号
|
||||
echo "📊 Calculating next version..."
|
||||
|
||||
# 获取当前提交与最新tag之间的所有提交消息
|
||||
COMMIT_MESSAGES=$(git log --oneline --format=%s $LATEST_TAG..HEAD 2>/dev/null || echo "")
|
||||
|
||||
# 统计需要递增的提交次数(过滤重复的提交消息)
|
||||
INCREMENT_COUNT=0
|
||||
if [ -n "$COMMIT_MESSAGES" ]; then
|
||||
# 使用awk过滤重复的提交消息并计数
|
||||
UNIQUE_MESSAGES=$(echo "$COMMIT_MESSAGES" | awk '!seen[$0]++')
|
||||
INCREMENT_COUNT=$(echo "$UNIQUE_MESSAGES" | wc -l)
|
||||
echo "📝 Found $INCREMENT_COUNT unique commit(s) since last tag"
|
||||
else
|
||||
echo "📝 No new commits since last tag"
|
||||
fi
|
||||
|
||||
# 计算新的版本号
|
||||
NEW_PATCH=$((PATCH + INCREMENT_COUNT))
|
||||
NEW_MINOR=$MINOR
|
||||
NEW_MAJOR=$MAJOR
|
||||
|
||||
# 处理版本号进位逻辑
|
||||
if [ $NEW_PATCH -ge 1000 ]; then
|
||||
NEW_MINOR=$((NEW_MINOR + NEW_PATCH / 1000))
|
||||
NEW_PATCH=$((NEW_PATCH % 1000))
|
||||
echo "🔄 Patch version overflow, incrementing minor version"
|
||||
fi
|
||||
|
||||
if [ $NEW_MINOR -ge 10 ]; then
|
||||
NEW_MAJOR=$((NEW_MAJOR + NEW_MINOR / 10))
|
||||
NEW_MINOR=$((NEW_MINOR % 10))
|
||||
echo "🔄 Minor version overflow, incrementing major version"
|
||||
fi
|
||||
|
||||
# 生成下一个版本号
|
||||
NEXT_VERSION="v${NEW_MAJOR}.${NEW_MINOR}.${NEW_PATCH}"
|
||||
NEXT_TAG="${NEXT_VERSION}_sky"
|
||||
|
||||
echo "🚀 Next version: $NEXT_VERSION"
|
||||
echo "🏷️ Next tag: $NEXT_TAG"
|
||||
echo "📈 Increment count: $INCREMENT_COUNT"
|
||||
|
||||
# 输出到Github Actions环境变量
|
||||
echo "NEXT_VERSION=$NEXT_VERSION" >> $GITHUB_OUTPUT
|
||||
echo "NEXT_TAG=$NEXT_TAG" >> $GITHUB_OUTPUT
|
||||
echo "INCREMENT_COUNT=$INCREMENT_COUNT" >> $GITHUB_OUTPUT
|
||||
|
||||
# 输出版本信息
|
||||
echo "✅ Version extraction completed"
|
||||
# 5. 任务完成通知
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user