fix: 修复 Release 正文缺少 CHANGELOG 内容,支持 -beta 版本后缀

原因:electron-builder 拿到 GH_TOKEN 后会自动创建一个空内容的 Release,
导致 softprops 的 body_path 无法生效。移除 electron-builder 的 GH_TOKEN,
让 softprops/action-gh-release 独占负责 Release 创建和内容写入。

顺带修复 extract-release-notes.mjs 正则式只转义第一个点的 bug,
并更新 release.mjs 支持 0.x.x-beta / 0.x.x-rc.1 等版本号后缀。
This commit is contained in:
钟明原 committed 2026-03-14 23:31:53 +08:00
1 parent 2b828f6000
commit bfa0f00438
5 files changed
+8 -8

No files matched your search

+3 -1
View File
@@ -43,7 +43,9 @@ description: 发版助手。自动分析改动、生成 CHANGELOG 条目、处
| 新增功能 | 次版本号 +1,修订号归零 | `0.0.1` → `0.1.0` |
| 破坏性变更 | 主版本号 +1 | `0.x.x` → `1.0.0` |
**测试版判断**:版本号主版本为 0(即 `0.x.x`)时,在 GitHub Release 上自动标记为"预发布/测试版"(CI 已配置,无需手动处理)。
版本号支持 `-beta` / `-alpha` / `-rc.1` 等后缀(如 `0.1.0-beta`)。
**测试版判断**:版本号主版本为 0(即 `0.x.x`)或包含 `-`(如 `0.1.0-beta`)时,在 GitHub Release 上自动标记为"预发布/测试版"(CI 已配置,无需手动处理)。
向用户展示建议版本号,等待确认或让用户输入自定义版本号。
-1
View File
@@ -85,7 +85,6 @@ jobs:
- name: Package DMG
run: pnpm exec electron-builder --mac --${{ matrix.arch }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_IDENTITY_AUTO_DISCOVERY: false
- name: Upload artifact
-2
View File
@@ -65,8 +65,6 @@ jobs:
- name: Package NSIS installer
run: pnpm exec electron-builder --win
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload artifact
uses: actions/upload-artifact@v7
+3 -2
View File
@@ -24,8 +24,9 @@ if (!version) {
const changelog = readFileSync(resolve(root, 'CHANGELOG.md'), 'utf8')
const lines = changelog.split('\n')
// 找到 ## [version] 开头的行
const startPattern = new RegExp(`^## \\[${version.replace('.', '\\.')}\\]`)
// 找到 ## [version] 开头的行(转义版本号中所有特殊正则字符)
const escapedVersion = version.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
const startPattern = new RegExp(`^## \\[${escapedVersion}\\]`)
const sectionPattern = /^## \[/
let inSection = false
+2 -2
View File
@@ -33,8 +33,8 @@ function run(cmd) {
// ── 参数校验 ──────────────────────────────────────────────────────────────────
const version = process.argv[2]
if (!version || !/^\d+\.\d+\.\d+$/.test(version)) {
console.error('用法: pnpm run release <version> (例如: 0.2.0)')
if (!version || !/^\d+\.\d+\.\d+(-[a-zA-Z0-9.]+)?$/.test(version)) {
console.error('用法: pnpm run release <version> (例如: 0.2.0 或 0.2.0-beta)')
process.exit(1)
}