chore(desktop-client): auto-bump version before packaging
Desktop Client Build / Resolve Build Metadata (push) Successful in 26s
Desktop Client Build / Build Desktop Client (push) Successful in 21m52s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 30s

Add scripts/bump-version.cjs and run it ahead of package:mac/win/linux
so every build gets a fresh patch version. Supports DESKTOP_VERSION for
an explicit version, or major/minor/patch via argument or
DESKTOP_VERSION_BUMP. Version moves 0.1.0 -> 0.1.1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 09:32:32 +08:00
parent bb2ad3f6e9
commit 4f12a354f6
2 changed files with 56 additions and 4 deletions
+5 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@geo/desktop-client",
"version": "0.1.0",
"version": "0.1.1",
"private": true,
"description": "省心推客户端 — 连接和管理您的媒体账号,轻松发布和监控内容表现。",
"author": {
@@ -16,9 +16,10 @@
"gen:icons": "node scripts/generate-brand-icons.cjs",
"obfuscate": "node scripts/obfuscate.cjs",
"build:obf": "pnpm run build && pnpm run obfuscate",
"package:mac": "pnpm run build:obf && electron-builder --mac --arm64 --universal",
"package:win": "pnpm run build:obf && electron-builder --win --x64",
"package:linux": "pnpm run build:obf && electron-builder --linux --x64 --arm64",
"version:bump": "node scripts/bump-version.cjs",
"package:mac": "pnpm run version:bump && pnpm run build:obf && electron-builder --mac --arm64 --universal",
"package:win": "pnpm run version:bump && pnpm run build:obf && electron-builder --win --x64",
"package:linux": "pnpm run version:bump && pnpm run build:obf && electron-builder --linux --x64 --arm64",
"sign:setup": "bash scripts/sign-setup.sh",
"sign:mac": "bash scripts/sign-mac.sh",
"test": "vitest run",
@@ -0,0 +1,51 @@
const fs = require('node:fs')
const path = require('node:path')
const packageJsonPath = path.resolve(__dirname, '../package.json')
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
const currentVersion = packageJson.version
const requestedVersion = process.env.DESKTOP_VERSION
const bumpType = process.argv[2] || process.env.DESKTOP_VERSION_BUMP || 'patch'
function assertVersion(version) {
if (!/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/.test(version)) {
throw new Error(`Invalid desktop version "${version}". Expected semver like 1.2.3.`)
}
}
function bump(version, type) {
const match = /^(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/.exec(version)
if (!match) {
throw new Error(`Cannot bump invalid desktop version "${version}".`)
}
const major = Number(match[1])
const minor = Number(match[2])
const patch = Number(match[3])
if (type === 'major') {
return `${major + 1}.0.0`
}
if (type === 'minor') {
return `${major}.${minor + 1}.0`
}
if (type === 'patch') {
return `${major}.${minor}.${patch + 1}`
}
assertVersion(type)
return type
}
assertVersion(currentVersion)
const nextVersion = requestedVersion || bump(currentVersion, bumpType)
assertVersion(nextVersion)
packageJson.version = nextVersion
fs.writeFileSync(packageJsonPath, `${JSON.stringify(packageJson, null, 2)}\n`)
console.log(`Desktop version bumped: ${currentVersion} -> ${nextVersion}`)