
TRIPandbaiqing
ec9584ea0c
feat(release): split updater manifest by channel from tag suffix (#330)
让 release pipeline 根据 tag 名后缀区分 Beta / 正式版渠道,是 opt-in beta
机制的服务端基础。客户端读取的 endpoint 在 PR-B-2 接入。
约定:
- `v<v>-tauri` = 正式版渠道(stable)
- `v<v>-beta-tauri` = Beta 渠道(beta)
release-tauri.yml 改动:
- 在 jobs.build 顶层加 OPENLESS_RELEASE_CHANNEL job-env,由
endsWith(github.ref_name, '-beta-tauri') 决定;workflow_dispatch 与
非 tag 触发回退为 stable,不改变现有 dispatch 行为。
- Write updater manifest step 把 OPENLESS_RELEASE_CHANNEL 透传给脚本。
- Upload-artifact 的 manifest path 改为 `latest-{tgt}-{arch}*.json` glob,
让 stable 和 beta 两种文件名(或 mirror 变体)都能被收集,避免
if-no-files-found 在 beta release 时挂掉。
- Create release 的 prerelease 改为
`${{ env.OPENLESS_RELEASE_CHANNEL == 'beta' }}`:beta tag 自动标
GitHub prerelease(UI 折叠 + 默认不算 latest),stable 保持不变。
write-updater-manifest.mjs 改动:
- 读取 OPENLESS_RELEASE_CHANNEL(默认 stable);非 stable / beta 时
fail-fast,避免拼错 env 静默走错路径。
- beta 渠道时 manifest 文件名加 `-beta` 后缀:
latest-{tgt}-{arch}-beta.json
latest-{tgt}-{arch}-beta-mirror.json
正式版用户的 endpoint 永远指向不带后缀的旧文件名,不会被 beta release 覆盖。
向后兼容:
- 现有 v1.2.23-tauri 等 stable release 行为完全不变(文件名、prerelease=false 沿用旧逻辑)。
- workflow_dispatch 不打 tag 时也照常构建 + 不上传 release。
发版后 checklist(PR-B-2 文档段会写进 CLAUDE.md):
- 推 v<v>-beta-tauri tag → GitHub Release 应标 prerelease 且只含
latest-*-beta.json
- 推 v<v>-tauri tag → 正式 release 且只含 latest-*.json(不带后缀)
Co-authored-by: baiqing <lbx12309@icloud.com>
2026-05-07 22:00:08 +08:00
..
2026-05-04 23:16:12 +08:00
2026-05-04 23:00:25 +08:00
2026-04-29 19:54:56 +08:00
2026-05-04 23:00:25 +08:00
2026-05-07 22:00:08 +08:00
2026-05-04 22:21:14 +08:00
2026-05-04 23:00:25 +08:00
2026-05-04 23:00:25 +08:00
2026-05-04 23:00:25 +08:00
2026-05-04 23:16:12 +08:00
2026-05-04 22:21:14 +08:00
2026-04-29 19:54:56 +08:00
2026-05-04 21:54:35 +08:00
2026-05-04 22:31:08 +08:00