44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 测试snapshot版本生成逻辑
|
||
|
||
echo "🔍 测试Snapshot版本号生成逻辑"
|
||
echo "================================"
|
||
|
||
# 获取当前时间戳和短commit hash
|
||
TIMESTAMP=$(date +%Y%m%d%H%M%S)
|
||
SHORT_COMMIT=$(git rev-parse --short HEAD)
|
||
|
||
# 读取当前版本,移除任何现有的snapshot标识
|
||
CURRENT_VERSION=$(node -p "require('./package.json').version.split('-')[0]")
|
||
|
||
# 生成唯一的snapshot版本号:base-snapshot.timestamp.commit
|
||
SNAPSHOT_VERSION="${CURRENT_VERSION}-snapshot.${TIMESTAMP}.${SHORT_COMMIT}"
|
||
|
||
echo "📦 当前基础版本: $CURRENT_VERSION"
|
||
echo "⏰ 时间戳: $TIMESTAMP"
|
||
echo "🔗 短commit hash: $SHORT_COMMIT"
|
||
echo "🚀 生成的snapshot版本: $SNAPSHOT_VERSION"
|
||
|
||
# 验证版本号格式
|
||
if [[ $SNAPSHOT_VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+-snapshot\.[0-9]{14}\.[a-f0-9]{7}$ ]]; then
|
||
echo "✅ 版本号格式正确"
|
||
else
|
||
echo "❌ 版本号格式不正确"
|
||
exit 1
|
||
fi
|
||
|
||
# 模拟设置版本号
|
||
echo ""
|
||
echo "🔧 模拟设置版本号..."
|
||
npm version $SNAPSHOT_VERSION --no-git-tag-version
|
||
|
||
echo "📋 更新后的package.json版本:"
|
||
node -p "require('./package.json').version"
|
||
|
||
# 恢复原始版本
|
||
echo ""
|
||
echo "🔄 恢复原始版本..."
|
||
npm version $CURRENT_VERSION --no-git-tag-version
|
||
|
||
echo "✅ 测试完成!snapshot版本生成逻辑工作正常" |