mirror of
https://mirror.skon.top/github.com/ILoveBingLu/CipherTalk
synced 2026-04-22 14:20:09 +08:00
📦 发布说明
触发方式
当前仓库不再使用本地 npm run tuisong 发布。
正式发布方式改为:
- 修改
package.json中的版本号 - 提交代码并推送到
main - 推送一个与版本号完全一致的 Git tag,例如:
git tag v2.2.14
git push origin v2.2.14
只有推送 v* 标签时,GitHub Actions 才会自动构建和发布。
本地测试(不提交密钥)
发布相关脚本支持从本地私有环境文件读取密钥与模型配置,读取顺序为:
- 进程环境变量(例如手动
set/ CI 注入) - 仓库根目录
.release.local.env - 仓库根目录
.env.local
可用键(按需填写):
AI_API_KEYAI_API_URLAI_MODELGH_TOKEN
示例(文件不会被提交):
AI_API_KEY=sk-xxxx
AI_API_URL=https://api.openai.com/v1/chat/completions
AI_MODEL=gpt-5.4
GH_TOKEN=ghp_xxxx
GitHub Actions 会做什么
.github/workflows/release.yml 会在 v* 标签触发后执行:
当前工作流已拆成串并行 job:
prepare-metabuild-windowsgenerate-release-bodypublish-github-releasemirror-r2notify-telegram-successnotify-failure
其中:
prepare-meta生成force-update.json和release-context.jsonbuild-windows负责构建安装包和latest.ymlgenerate-release-body负责 AI / 模板版发布说明publish-github-release汇总产物并创建 GitHub Releasemirror-r2与notify-telegram-success在发布成功后并行执行
GitHub Release 上传内容:
- 安装包
latest.ymlforce-update.json
Cloudflare R2 同步内容:
- 安装包
latest.ymlforce-update.json
Telegram 通知:
- 成功时发送 AI 摘要通知
- 失败时发送失败通知
GitHub Release 资产包括:
- 安装包
latest.ymlforce-update.json
- 向 Telegram 频道/群发送发布通知(AI 摘要 + 强制更新提醒)
Windows 全量更新
当前 Windows 自动更新统一使用全量安装包下载。
依赖产物为:
CipherTalk-x.y.z-Setup.exelatest.yml
工作流会在构建与发布阶段校验安装包和 latest.yml 的哈希是否一致,避免元数据与真实安装包不匹配。
说明:
- 当前仍是未签名发布
- 公开分发时稳定性仍可能受 SmartScreen / 杀软 / 系统策略影响
- 当前已禁用差分更新,客户端始终下载完整安装包
版本要求
标签名必须与 package.json.version 完全对应:
package.json.version = 2.2.14- Git tag 必须是
v2.2.14
如果不一致,工作流会直接失败。
强制更新策略
工作流会调用:
npm run build:force-update-manifest
默认情况下不会触发强制更新。只有在仓库 Variables / Secrets 中提供以下值时,生成的 force-update.json 才会带上对应策略:
FORCE_UPDATE_MIN_VERSIONFORCE_UPDATE_BLOCKED_VERSIONSFORCE_UPDATE_TITLEFORCE_UPDATE_MESSAGEFORCE_UPDATE_RELEASE_NOTES
Secrets / Variables
Cloudflare R2 Secrets
需要在 GitHub 仓库配置以下 Secrets:
R2_ACCOUNT_IDR2_BUCKET_NAMER2_ACCESS_KEY_IDR2_SECRET_ACCESS_KEY
可选强制更新 Variables / Secrets
可以按需配置:
FORCE_UPDATE_MIN_VERSIONFORCE_UPDATE_BLOCKED_VERSIONSFORCE_UPDATE_TITLEFORCE_UPDATE_MESSAGEFORCE_UPDATE_RELEASE_NOTES
不配置时,force-update.json 仍会生成,但只包含当前版本信息,不会强制用户升级。
AI Release Body 配置
发布工作流会自动生成标准化 Release body。
需要在 GitHub Environment 软件发布 中配置:
AI_API_KEYAI_API_URL(可选)AI_MODEL(可选)
用途:
- 默认会调用当前配置的 AI 模型生成中文 Release 说明
- 自动生成中文 Release 说明
- 若 AI 不可用,会自动降级为模板正文,不影响发版
默认值:
AI_API_URL:https://api.openai.com/v1/chat/completionsAI_MODEL:gpt-5.4
Telegram 通知配置
如果需要自动发 Telegram 通知,请在 GitHub Environment 软件发布 中配置:
-
Secret:
TELEGRAM_BOT_TOKEN
-
Variable:
TELEGRAM_CHAT_IDSTELEGRAM_RELEASE_COVER_URL(可选)
说明:
TELEGRAM_CHAT_IDS支持多个目标,用英文逗号分隔- 可填写频道用户名或群/频道 chat_id
- 成功发布时会发送 AI 摘要版通知
- 发布失败时会发送失败通知
当前更新源角色
- GitHub Release:主更新源,负责安装包与
latest.yml - Cloudflare R2:镜像下载源 + 策略补充源
- force-update.json:GitHub 优先,R2 回退