ci: 🎡 publish分离版本号更新

This commit is contained in:
2026-03-18 16:32:27 +08:00
parent a8af544e79
commit da7d53e791
10 changed files with 100 additions and 142 deletions
+13 -50
View File
@@ -1,21 +1,11 @@
# 发布所有子包到私有 npm 仓库
# 使用方法: powershell scripts/publish.ps1 [版本类型]
# 版本类型: major | minor | patch (默认 patch)
# 发布所有子包到私有 npm 仓库
# 使用方法: powershell scripts/publish.ps1
# 注意: 发布仓库地址使用各子包 package.json 中的 publishConfig.registry 配置
# 版本管理请先通过 pnpm release (standard-version) 完成,本脚本仅负责构建和发布
$ErrorActionPreference = "Stop"
# 获取版本类型参数,默认为 patch
$VERSION_TYPE = if ($args.Count -gt 0) { $args[0] } else { "patch" }
# 验证版本类型
if ($VERSION_TYPE -notin @("major", "minor", "patch")) {
Write-Host "❌ 无效的版本类型: $VERSION_TYPE" -ForegroundColor Red
Write-Host "使用方法: powershell scripts/publish.ps1 [major|minor|patch]" -ForegroundColor Yellow
exit 1
}
Write-Host "🚀 开始发布流程 (版本类型: $VERSION_TYPE)" -ForegroundColor Green
Write-Host "🚀 开始发布流程" -ForegroundColor Green
Write-Host ""
# 子包列表
@@ -48,19 +38,7 @@ if ($LASTEXITCODE -ne 0) {
}
Write-Host ""
# 3. 更新版本号
Write-Host "📝 更新版本号 ($VERSION_TYPE)..." -ForegroundColor Cyan
foreach ($package in $PACKAGES) {
if (Test-Path $package) {
Write-Host " 更新 $package 版本号..." -ForegroundColor Gray
Push-Location $package
npm version $VERSION_TYPE --no-git-tag-version
Pop-Location
}
}
Write-Host ""
# 4. 构建所有包
# 3. 构建所有包
Write-Host "📦 构建所有包..." -ForegroundColor Cyan
pnpm build
if ($LASTEXITCODE -ne 0) {
@@ -69,22 +47,12 @@ if ($LASTEXITCODE -ne 0) {
}
Write-Host ""
# 5. 更新 README 中的版本信息
Write-Host "📄 更新 README..." -ForegroundColor Cyan
$COMMON_VERSION = node -p "require('./packages/common/package.json').version"
Write-Host " 当前版本: $COMMON_VERSION" -ForegroundColor Gray
# 获取当前版本号
$CURRENT_VERSION = node -p "require('./package.json').version"
Write-Host " 当前版本: v$CURRENT_VERSION" -ForegroundColor Gray
Write-Host ""
# 6. 提交版本更新
Write-Host "💾 提交版本更新..." -ForegroundColor Cyan
git add packages/*/package.json
git commit -m "chore(release): publish v$COMMON_VERSION"
if ($LASTEXITCODE -ne 0) {
Write-Host " 没有需要提交的更改" -ForegroundColor Gray
}
Write-Host ""
# 7. 发布每个包
# 4. 发布每个包
Write-Host "📤 开始发布包到 npm..." -ForegroundColor Cyan
foreach ($package in $PACKAGES) {
if (Test-Path $package) {
@@ -106,23 +74,18 @@ foreach ($package in $PACKAGES) {
}
}
# 8. 创建 Git 标签
Write-Host "🏷️ 创建 Git 标签..." -ForegroundColor Cyan
git tag "v$COMMON_VERSION"
Write-Host ""
# 9. 推送到远程仓库
# 5. 推送到远程仓库
Write-Host "🔼 推送到远程仓库..." -ForegroundColor Cyan
$push = Read-Host "是否推送到远程仓库? (y/N)"
if ($push -eq "y" -or $push -eq "Y") {
git push origin master
git push origin "v$COMMON_VERSION"
git push origin --tags
Write-Host "✅ 已推送到远程仓库" -ForegroundColor Green
} else {
Write-Host "⚠️ 跳过推送,请手动执行:" -ForegroundColor Yellow
Write-Host " git push origin master" -ForegroundColor Gray
Write-Host " git push origin v$COMMON_VERSION" -ForegroundColor Gray
Write-Host " git push origin --tags" -ForegroundColor Gray
}
Write-Host ""
Write-Host "🎉 所有包发布完成!版本: v$COMMON_VERSION" -ForegroundColor Green
Write-Host "🎉 所有包发布完成!版本: v$CURRENT_VERSION" -ForegroundColor Green
+13 -47
View File
@@ -1,23 +1,13 @@
#!/bin/bash
# 发布所有子包到私有 npm 仓库
# 使用方法: bash scripts/publish.sh [版本类型]
# 版本类型: major | minor | patch (默认 patch)
# 使用方法: bash scripts/publish.sh
# 注意: 发布仓库地址使用各子包 package.json 中的 publishConfig.registry 配置
# 版本管理请先通过 pnpm release (standard-version) 完成,本脚本仅负责构建和发布
set -e
# 获取版本类型参数,默认为 patch
VERSION_TYPE=${1:-patch}
# 验证版本类型
if [[ ! "$VERSION_TYPE" =~ ^(major|minor|patch)$ ]]; then
echo "❌ 无效的版本类型: $VERSION_TYPE"
echo "使用方法: bash scripts/publish.sh [major|minor|patch]"
exit 1
fi
echo "🚀 开始发布流程 (版本类型: $VERSION_TYPE)"
echo "🚀 开始发布流程"
echo ""
# 子包列表
@@ -49,39 +39,20 @@ if ! pnpm test; then
fi
echo ""
# 3. 更新版本号
echo "📝 更新版本号 ($VERSION_TYPE)..."
for package in "${PACKAGES[@]}"; do
if [ -d "$package" ]; then
echo " 更新 $package 版本号..."
cd "$package"
npm version $VERSION_TYPE --no-git-tag-version
cd - > /dev/null
fi
done
echo ""
# 4. 构建所有包
# 3. 构建所有包
echo "📦 构建所有包..."
if ! pnpm build; then
echo "❌构建失败,停止发布"
echo "❌ 构建失败,停止发布"
exit 1
fi
echo ""
# 5. 更新 README 中的版本信息
echo "📄 更新 README..."
COMMON_VERSION=$(node -p "require('./packages/common/package.json').version")
echo " 当前版本: $COMMON_VERSION"
# 获取当前版本号
CURRENT_VERSION=$(node -p "require('./package.json').version")
echo " 当前版本: v$CURRENT_VERSION"
echo ""
# 6. 提交版本更新
echo "💾 提交版本更新..."
git add packages/*/package.json
git commit -m "chore(release): publish v$COMMON_VERSION" || echo " 没有需要提交的更改"
echo ""
# 7. 发布每个包
# 4. 发布每个包
echo "📤 开始发布包到 npm..."
for package in "${PACKAGES[@]}"; do
if [ -d "$package" ]; then
@@ -101,24 +72,19 @@ for package in "${PACKAGES[@]}"; do
fi
done
# 8. 创建 Git 标签
echo "🏷️ 创建 Git 标签..."
git tag "v$COMMON_VERSION"
echo ""
# 9. 推送到远程仓库
# 5. 推送到远程仓库
echo "🔼 推送到远程仓库..."
read -p "是否推送到远程仓库? (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
git push origin master
git push origin "v$COMMON_VERSION"
git push origin --tags
echo "✅ 已推送到远程仓库"
else
echo "⚠️ 跳过推送,请手动执行:"
echo " git push origin master"
echo " git push origin v$COMMON_VERSION"
echo " git push origin --tags"
fi
echo ""
echo "🎉 所有包发布完成!版本: v$COMMON_VERSION"
echo "🎉 所有包发布完成!版本: v$CURRENT_VERSION"