feat(V0.2): 版本方案落地 —— 前端/外壳解绑, build 标识统一, 外壳版本展示
Docker Build and Push / build-image (push) Successful in 1m5s
Docker Build and Push / build-image (push) Successful in 1m5s
- check-version: 分组校验 (前端 package.json / 外壳 tauri.conf+Cargo), 两组不再要求相等; 分支前缀校验只针对前端版本 - build-ota: build_id 改为 YYYYMMDDHHmmss (北京时间, 与前端 BUILD_ID 同格式); sequence 保持毫秒仅用于判新 - 我的页: 当前版本恢复 v0.2.0 · build <原始BUILD_ID>; 新版本附 OTA build_id; 底部替换为外壳版本 (Tauri getVersion, Web 端 —) - README: 合并遗留 readme 全部内容并按决议重写版本管理章节; 新增 CHANGELOG.md (PATCH 仅明确提出时自增)
This commit is contained in:
@@ -22,6 +22,19 @@ export function getCurrentVersionInfo() {
|
||||
return { version: APP_VERSION, build: BUILD_ID }
|
||||
}
|
||||
|
||||
// 构建标识统一化: 任意来源 (YYYYMMDDHHmmss / seq-<ms> / 毫秒数) → 'YYYYMMDDHHmmss'
|
||||
// (北京时间, 与 vite BUILD_ID / OTA manifest.build_id 同格式; 无法解析返回 '')
|
||||
export function fmtBuildId(v) {
|
||||
if (v == null) return ''
|
||||
if (typeof v === 'string' && v.startsWith('seq-')) return fmtBuildId(Number(v.slice(4)))
|
||||
if (typeof v === 'string' && /^\d{14}$/.test(v)) return v
|
||||
const ms = Number(v)
|
||||
if (!Number.isFinite(ms) || ms <= 0) return ''
|
||||
const d = new Date(ms + 8 * 3600 * 1000)
|
||||
const p = (n, w) => String(n).padStart(w || 2, '0')
|
||||
return `${d.getUTCFullYear()}${p(d.getUTCMonth() + 1)}${p(d.getUTCDate())}${p(d.getUTCHours())}${p(d.getUTCMinutes())}${p(d.getUTCSeconds())}`
|
||||
}
|
||||
|
||||
// 启动时: 确认当前资源可用 (Tauri only)
|
||||
// 失败/异常都不抛, 仅 console.warn
|
||||
export function initOta() {
|
||||
@@ -114,6 +127,7 @@ async function checkByVersion() {
|
||||
info: {
|
||||
version: manifest.version,
|
||||
sequence: manifest.sequence,
|
||||
build: manifest.build_id || fmtBuildId(manifest.sequence),
|
||||
notes: manifest.notes || '',
|
||||
commit: manifest.commit || '',
|
||||
mandatory: !!manifest.mandatory,
|
||||
@@ -136,6 +150,7 @@ async function checkOtaUpdateTauri(devMode) {
|
||||
info: {
|
||||
version: r.version,
|
||||
sequence: r.sequence,
|
||||
build: fmtBuildId(r.sequence),
|
||||
notes: r.notes,
|
||||
mandatory: r.mandatory,
|
||||
bundle_size: r.bundle_size,
|
||||
@@ -168,6 +183,7 @@ async function checkOtaUpdateWeb(devMode) {
|
||||
info: {
|
||||
version: data.version,
|
||||
sequence: data.sequence,
|
||||
build: fmtBuildId(data.build_id || data.sequence),
|
||||
notes: data.note || '',
|
||||
commit: data.commit || '',
|
||||
// web 端没有强制/mandatory 等字段, 仅展示
|
||||
|
||||
Reference in New Issue
Block a user