mirror of
https://github.com/ILoveBingLu/CipherTalk.git
synced 2026-03-24 15:19:25 +08:00
📦 自动发布脚本使用说明
🚀 快速开始
发布新版本(3 步完成)
# 1. 修改 package.json 中的版本号
# "version": "2.0.4"
# 2. 提交所有更改
git add .
git commit -m "release: v2.0.4"
# 3. 运行发布脚本
npm run tuisong
就这么简单!脚本会自动:
- ✅ 检查是否有未提交的更改(有则报错)
- ✅ 读取
package.json中的版本号 - ✅ 推送到 GitHub
- ✅ 创建并推送版本标签(如
v2.0.4) - ✅ 触发自动构建和发布
📝 使用方法
npm run tuisong
前提条件:
- ✅ 所有更改已提交(
git commit) - ✅
package.json中的版本号已更新
脚本会做什么:
- 检查是否有未提交的更改(有则退出)
- 显示待推送的提交
- 推送到 GitHub
- 创建版本标签(如
v2.0.4) - 推送标签到 GitHub
🎯 完整发布流程
步骤 1:修改版本号
编辑 package.json:
{
"name": "ciphertalk",
"version": "2.0.4", // 修改这里
...
}
版本号规范:
- patch (x.y.Z) - 修复 bug:
2.0.3→2.0.4 - minor (x.Y.z) - 新增功能:
2.0.3→2.1.0 - major (X.y.z) - 重大更新:
2.0.3→3.0.0
步骤 2:提交更改
git add .
git commit -m "release: v2.0.4"
步骤 3:推送发布
npm run tuisong
脚本会显示:
================================
密语 - 自动发布脚本
================================
📌 当前版本: v2.0.4
📝 待推送的提交:
abc1234 release: v2.0.4
[1/2] 🚀 推送到 GitHub...
✓ 推送成功
[2/2] 🏷️ 创建并推送标签 v2.0.4...
✓ 标签创建成功
================================
✅ 发布流程已启动!
================================
📦 版本: v2.0.4
🔗 查看构建进度:
https://github.com/JiQingzhe2004/ciphertalk/actions
🔗 发布完成后访问:
https://github.com/JiQingzhe2004/ciphertalk/releases/tag/v2.0.4
⏱️ 预计 10-15 分钟后构建完成
步骤 4:等待构建完成
GitHub Actions 会自动:
- 安装依赖
- 重新编译原生模块
- 构建美化安装包
- 创建 GitHub Release
- 上传到 Cloudflare R2
- 上传
CipherTalk-2.0.4-Setup.exe
🎨 使用场景示例
场景 1:修复 bug
# 1. 修改代码
# 2. 更新版本号: 2.0.3 → 2.0.4
# 3. 提交
git add .
git commit -m "fix: 修复表情包显示问题"
# 4. 发布
npm run tuisong
场景 2:添加新功能
# 1. 开发新功能
# 2. 更新版本号: 2.0.3 → 2.1.0
# 3. 提交
git add .
git commit -m "feat: 添加语音转文字功能"
# 4. 发布
npm run tuisong
场景 3:重大更新
# 1. 重构代码
# 2. 更新版本号: 2.0.3 → 3.0.0
# 3. 提交
git add .
git commit -m "feat!: 全新 UI 设计"
# 4. 发布
npm run tuisong
🔧 其他构建脚本
完整构建(生产环境)
npm run build:pro
包含:
- ✅ 更新 README 版本号
- ✅ TypeScript 编译
- ✅ Vite 构建前端
- ✅ Electron 打包
- ✅ 生成美化安装包
- ✅ 更新 latest.yml
仅构建外壳(测试用)
node scripts/build-shell-only.js
用于快速测试安装程序界面。
🤖 GitHub Actions 自动化
推送到 main 分支时自动触发:
- 📦 安装依赖
- 🔨 重新编译原生模块
- 🏗️ 构建应用程序(
npm run build:pro) - 📊 获取版本号(从
package.json) - 🎉 创建 GitHub Release(标签:
v2.0.4) - ☁️ 上传到 Cloudflare R2(自动删除旧版本)
- 📤 上传构建产物到 GitHub
查看构建状态:
https://github.com/JiQingzhe2004/ciphertalk/actions
查看发布版本:
https://github.com/JiQingzhe2004/ciphertalk/releases
⚙️ GitHub Secrets 配置
需要在 GitHub 仓库设置中配置以下 Secrets:
Cloudflare R2 配置
- 进入 GitHub 仓库 → Settings → Secrets and variables → Actions
- 点击 "New repository secret" 添加以下密钥:
| Secret 名称 | 说明 | 示例值 |
|---|---|---|
R2_ACCOUNT_ID |
R2 账户 ID | bf9d655d15b24e8636ef9e61c137785b |
R2_BUCKET_NAME |
R2 存储桶名称 | miyu |
R2_ACCESS_KEY_ID |
R2 访问密钥 ID | 3c49eaabd4b1a28f1d6a4eb642942ee7 |
R2_SECRET_ACCESS_KEY |
R2 桶密访问密钥 | •••••••••••••••••••••••••••••••• |
邮件通知配置(可选)
如果需要在构建完成后收到邮件通知,添加以下 Secrets:
| Secret 名称 | 说明 | 示例值 |
|---|---|---|
MAIL_USERNAME |
发件邮箱(Gmail) | your-email@gmail.com |
MAIL_PASSWORD |
Gmail 应用专用密码 | abcd efgh ijkl mnop |
MAIL_TO |
收件邮箱 | your-email@gmail.com |
如何获取 Gmail 应用专用密码:
- 登录 Google 账户
- 进入 安全性 → 两步验证(需要先启用)
- 进入 应用专用密码
- 选择 邮件 和 Windows 计算机
- 点击 生成,复制 16 位密码(格式:
abcd efgh ijkl mnop) - 将密码添加到 GitHub Secrets 的
MAIL_PASSWORD
邮件通知功能:
- ✅ 构建成功时发送邮件(包含下载链接)
- ❌ 构建失败时发送邮件(包含错误日志链接)
- 📧 邮件发送到你的 GitHub 注册邮箱(或指定邮箱)
如何获取 R2 凭证
从你的截图中可以看到:
- 账户 ID:在 Cloudflare R2 页面顶部显示
- 存储桶名称:你创建的存储桶名称
- 访问密钥 ID:在 R2 API 令牌页面显示
- 桶密访问密钥:创建 API 令牌时显示(只显示一次,需要保存)
R2 上传规则
- ✅ 自动上传
CipherTalk-{版本号}-Setup.exe - ✅ 自动上传
latest.yml(用于自动更新) - ✅ 自动删除旧版本的安装包(保留最新版本)
- ❌ 不上传 Core 版本(
*-Core-Setup.exe) - ℹ️ 如果存储桶为空,跳过删除步骤
🔧 故障排查
问题 1:检测到未提交的更改
错误:
❌ 检测到未提交的更改:
M package.json
M src/App.tsx
请先提交所有更改后再运行此脚本
解决:
# 提交所有更改
git add .
git commit -m "你的提交信息"
# 然后运行脚本
npm run tuisong
问题 2:推送失败
错误:
❌ 推送失败
请检查网络连接和 Git 配置
解决:
- 检查网络连接
- 检查 Git 配置
- 确认 GitHub 账号已登录
问题 3:标签已存在
提示:
⚠️ 标签 v2.0.4 已存在,跳过创建
说明:
- 这是正常提示,不影响推送
- 如果需要重新创建标签,先删除远程标签:
git push origin :refs/tags/v2.0.4 git tag -d v2.0.4
💡 提示
- 推送前先测试 - 确保代码可以正常运行
- 遵循版本号规范 - 便于版本管理(语义化版本)
- 写清楚提交信息 - 方便用户了解更新内容
- 等待构建完成 - 大约 10-15 分钟