fix(updater, ci, docs): 修复版本标签解析逻辑,调整发布流程与文档

重构electron/updater.ts中的版本比较函数,支持beta.N格式的预发布版本,调整buildId比较规则符合semver规范。
更新CI发布脚本,正式版生成带构建尾号的完整版本号并调整发布标题命名。
更新自动更新文档,说明新的版本规则与跨版本升级兼容性,纠正此前的错误认知。
This commit is contained in:
2026-08-31 03:39:38 +08:00
parent 512e4ae3d7
commit 53cde460e5
4 changed files with 37 additions and 25 deletions
+8 -7
View File
@@ -106,10 +106,11 @@ jobs:
# BUILD ID = GitHub Run Number(严格递增,无分钟级冲突)
# base 自动读 package.json(版本单一事实源)
# 版本格式(electron-updater GitHub provider道逻辑只认 alpha/beta 字符串标识):
# 版本格式(数字标识在 allowPrerelease道逻辑中会被当"自定义频道",但正式版用户
# allowPrerelease=false,走 /releases/latest(按 GitHub 的 prerelease 标记而非 semver):
# 只要发布时不加 --prerelease{base}-{buildId} 就是最新正式版,可正常识别):
# beta → {base}-beta.{buildId}(如 1.2.1-beta.13,频道 beta
# run → {base}(稳定版,如 1.2.1
# 数字标识(如 1.2.1-13)会被当作"自定义频道"导致更新无法识别,故弃用
# run → {base}-{buildId}(如 1.2.1-13,带构建尾号
- name: Generate BUILD ID & set version
id: version
shell: pwsh
@@ -119,7 +120,7 @@ jobs:
if ("${{ inputs.mode }}" -eq "beta") {
$full = node scripts/version.js build ci "beta.$buildId"
} else {
$full = node scripts/version.js build local
$full = node scripts/version.js build ci "$buildId"
}
"build_id=$buildId" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
"base=$base" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
@@ -174,9 +175,9 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
$tag = "v${{ steps.version.outputs.full }}"
# Release 标题命名(仅展示名;tag / 真实版本号是 {base}-beta.{id} 或 {base},更新机制不变):
# 正式/预览版 → "1.2.1";测试版 → "BETA 1.2.1"
$title = if ("${{ inputs.mode }}" -eq "beta") { "BETA ${{ steps.version.outputs.base }}" } else { "${{ steps.version.outputs.base }}" }
# Release 标题命名(仅展示名;tag / 真实版本号是 {base}-beta.{id} 或 {base}-{id}):
# 正式/预览版 → "1.2.5-13"(带构建尾号);测试版 → "BETA 1.2.5"
$title = if ("${{ inputs.mode }}" -eq "beta") { "BETA ${{ steps.version.outputs.base }}" } else { "${{ steps.version.outputs.full }}" }
# 资产列表(beta 额外上传 latest-beta.ymlGitHub provider 频道取件(latest-beta)不再 404 回退)
$assets = @(