Files
CipherTalk/scripts

📦 自动发布脚本使用说明

🚀 快速开始

发布新版本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 中的版本号已更新

脚本会做什么:

  1. 检查是否有未提交的更改(有则退出)
  2. 显示待推送的提交
  3. 推送到 GitHub
  4. 创建版本标签(如 v2.0.4
  5. 推送标签到 GitHub

🎯 完整发布流程

步骤 1修改版本号

编辑 package.json

{
  "name": "ciphertalk",
  "version": "2.0.4",  // 修改这里
  ...
}

版本号规范:

  • patch (x.y.Z) - 修复 bug2.0.32.0.4
  • minor (x.Y.z) - 新增功能:2.0.32.1.0
  • major (X.y.z) - 重大更新:2.0.33.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 会自动:

  1. 安装依赖
  2. 重新编译原生模块
  3. 构建美化安装包
  4. 创建 GitHub Release
  5. 上传到 Cloudflare R2
  6. 上传 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 分支时自动触发:

  1. 📦 安装依赖
  2. 🔨 重新编译原生模块
  3. 🏗️ 构建应用程序(npm run build:pro
  4. 📊 获取版本号(从 package.json
  5. 🎉 创建 GitHub Release标签v2.0.4
  6. ☁️ 上传到 Cloudflare R2自动删除旧版本
  7. 📤 上传构建产物到 GitHub

查看构建状态:
https://github.com/JiQingzhe2004/ciphertalk/actions

查看发布版本:
https://github.com/JiQingzhe2004/ciphertalk/releases


⚙️ GitHub Secrets 配置

需要在 GitHub 仓库设置中配置以下 Secrets

Cloudflare R2 配置

  1. 进入 GitHub 仓库 → Settings → Secrets and variables → Actions
  2. 点击 "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 应用专用密码:

  1. 登录 Google 账户
  2. 进入 安全性两步验证(需要先启用)
  3. 进入 应用专用密码
  4. 选择 邮件Windows 计算机
  5. 点击 生成,复制 16 位密码(格式:abcd efgh ijkl mnop
  6. 将密码添加到 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
    

💡 提示

  1. 推送前先测试 - 确保代码可以正常运行
  2. 遵循版本号规范 - 便于版本管理(语义化版本
  3. 写清楚提交信息 - 方便用户了解更新内容
  4. 等待构建完成 - 大约 10-15 分钟

🔗 相关链接