发布 Oleafly
从版本标签构建完整的草稿,逐一检查各平台的产物,再通过受保护的发布工作流正式发布。
Oleafly 的发布分为两个有意为之的阶段。版本标签会构建并验证一份草稿。维护者再用另一次工作流运行来发布这份草稿。
推送到 main 会运行 CI,但不会创建发布。
构建草稿
标题为“构建草稿”的部分从最新的 main 分支开始,并确保 CI 全部通过。
git switch maingit pull --ff-only./scripts/bump-version.sh 0.3.6git commit -am "chore: release v0.3.6"git push origin maingit tag v0.3.6git push origin v0.3.6该标签会触发 .github/workflows/release.yml,它会构建以下目标:
| 目标 | 安装包 |
|---|---|
| macOS Apple Silicon | .dmg |
| Windows x64 | .msi 和 -setup.exe |
| Linux x64 | .AppImage 和 .deb |
| Linux ARM64 | .AppImage 和 .deb |
每个目标都会获取并验证它固定版本的编译器 sidecar。随后工作流把四份更新程序片段合并成一个 latest.json。只有当每个必需的安装包和更新条目都齐备时,这份草稿才算准备就绪。
检查草稿
标题为“检查草稿”的部分打开 GitHub Releases 页面 (在新标签页中打开)上的草稿。检查发布说明、安装包名称、校验和、签名以及 latest.json。不要发布不完整的草稿。
打开 Actions → Release → Run workflow。输入同一个标签,并选择 Publish the release。
发布运行会重复构建和产物检查。它还会使用候选发布版对 Anthropic 和 Google 运行真实的契约测试。除非所有受支持的平台和完整的更新源都已就绪,否则最后一个任务会拒绝发布。
发布后,已安装的应用就能看到 latest.json。请把它当作不可逆的生产操作。如果发布运行失败,让发布保持草稿状态,修复原因后再次运行。
版本号
标题为“版本号”的部分Oleafly 遵循语义化版本:
- 补丁版本,例如
0.3.5到0.3.6,用于兼容的修复。 - 次版本,例如
0.3.5到0.4.0,用于兼容的新功能。 - 主版本,例如
0.3.5到1.0.0,用于破坏性变更或第一个稳定版本。
重要检查
标题为“重要检查”的部分- 标签必须与
package.json、src-tauri/tauri.conf.json、src-tauri/Cargo.toml和src-tauri/Cargo.lock一致。请使用scripts/bump-version.sh,不要分别手动修改这些文件。 - 发布说明来自
CHANGELOG.md中对应版本的章节。 - 不要复用已发布的标签。草稿失败时,修复分支并创建新版本,除非有明确理由替换尚未发布的标签。
- macOS 的签名和公证使用 Apple 发布密钥。配置了相应密钥时,Windows 的 Authenticode 使用 Azure Artifact Signing。更新程序签名使用单独的 Tauri 签名密钥。