本文档介绍如何通过打tag触发GitHub Actions自动构建发布FocusLog。
在发布新版本之前,请确保:
- 所有代码更改已提交
- 版本号已在以下文件中更新:
package.json中的version字段src-tauri/Cargo.toml中的version字段src-tauri/tauri.conf.json中的version字段
- 所有功能测试通过
- 项目在本地可以正常构建和运行
使用提供的发布脚本(推荐):
./release.sh <version>示例:
./release.sh 0.2.0 # 自动添加v前缀
./release.sh v0.2.0 # 使用完整tag名称如果你想手动打tag和推送,请按以下步骤操作:
# 编辑版本号文件
vim package.json
vim src-tauri/Cargo.toml
vim src-tauri/tauri.conf.jsongit add .
git commit -m "chore: bump version to 0.2.0"
git push# 创建带注释的tag
git tag -a v0.2.0 -m "Release v0.2.0"
# 或者创建轻量级tag
git tag v0.2.0# 只推送tag
git push origin v0.2.0
# 或者推送所有tags
git push origin --tagsGitHub Actions会在以下情况自动触发构建:
-
Tag推送(主要方式)
git push origin v* # 推送以v开头的tag
-
手动触发
- 访问 GitHub仓库的 Actions 页面
- 选择 "Release" workflow
- 点击 "Run workflow" 按钮
GitHub Actions将自动执行以下操作:
-
检出代码
- uses: actions/checkout@v4
-
设置Node.js环境
- uses: actions/setup-node@v4 with: node-version: 20
-
安装Rust工具链
- uses: dtolnay/rust-toolchain@stable
-
安装依赖
npm install
-
构建Tauri应用
- macOS ARM64 (Apple Silicon)
- macOS Intel (x86_64)
- Windows (x64)
-
创建GitHub Release
- 自动上传构建产物
- 创建Release页面
- 标记为草稿(可手动发布)
构建成功后,Release页面将包含以下安装包:
FocusLog_<version>_aarch64.dmg- macOS ARM64FocusLog_<version>_x64.dmg- macOS IntelFocusLog_<version>_x64-setup.nsis.zip- Windows
访问仓库的Actions页面查看实时构建状态:
https://github.com/YOUR_USERNAME/focuslog/actions
https://github.com/YOUR_USERNAME/focuslog/actions/workflows/release.yml
https://github.com/YOUR_USERNAME/focuslog/releases/tag/v0.2.0
遵循语义化版本(Semantic Versioning):
v<主版本>.<次版本>.<修订版本>
示例:
- v0.1.0 - 初始版本
- v0.2.0 - 新功能,向后兼容
- v0.2.1 - Bug修复
- v1.0.0 - 重大更新,可能不兼容
# 删除本地tag
git tag -d v0.2.0
# 删除远程tag
git push origin --delete v0.2.0
# 重新打tag
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin v0.2.0# 查看所有tags
git tag
# 查看包含注释的tags
git tag -n9
# 按日期排序查看tags
git tag --sort=-version:refname# 查看远程tags
git ls-remote --tags origin
# 或使用git show
git show v0.2.0- 查看Actions页面的详细日志
- 检查版本号是否一致
- 确认本地可以正常构建
- 修复问题后,删除tag重新发布
GitHub Actions默认创建草稿Release。发布时:
- 访问Release页面
- 找到对应的Release
- 点击"Edit release"
- 取消"Set as a pre-release"或直接发布
- 点击"Update release"
建议使用以下前缀:
chore:- 版本更新、配置更改feat:- 新功能fix:- Bug修复docs:- 文档更新style:- 代码格式调整refactor:- 代码重构test:- 测试相关
示例:
git commit -m "chore: bump version to 0.2.0"
git commit -m "feat: add WebDAV auto backup support"
git commit -m "fix: resolve theme switching issue"发布完成后,请确认:
- GitHub Actions构建成功(绿色✅)
- Release页面已创建
- 所有平台的安装包都上传成功
- Release描述正确
- 可以下载并安装应用
- 新版本在本地可以正常运行
- 所有新功能正常工作
📚 相关文档: