Skip to content

🚀 ci(release): 建立 v0.1.0 发布工作流 - #131

Merged
ZhaoXingPeng merged 1 commit into
mainfrom
ci/initial-release
Sep 11, 2026
Merged

ZhaoXingPeng merged 1 commit into
mainfrom
ci/initial-release

Conversation

@ZhaoXingPeng

Copy link
Copy Markdown
Owner

关联 Issue

Closes #130

做了什么

  • 新增 v0.1.0 tag 驱动的 GitHub Release 工作流,构建 Java/Web 统一发行 ZIP 和 Windows x64 NSIS 安装包。
  • 发布阶段汇总 ZIP 与 EXE 后统一生成 SHA256SUMS.txt,并通过 gh release create 发布可追溯资产。
  • 将后端版本从 0.1.0-SNAPSHOT 固定为 0.1.0,配置 GitHub Packages Maven Registry,并附带 source JAR。
  • 同步根 README、后端技术边界和工程规范索引,修正 Flyway/MyBatis 归属、背压队列、测试基线及发布/回滚说明。

实现与架构

  • 关键边界或数据流:tag 触发后,Ubuntu runner 执行前端测试/构建和后端测试/deploy;Windows runner 通过 Rust toolchain 构建 Tauri NSIS;发布 job 汇总两类资产并生成跨平台校验和。
  • 兼容性/迁移影响:后端 Maven 坐标为 com.babelflux:babelflux-backend:0.1.0;schema 仍由 Flyway 管理,应用账号与迁移账号可分离;Release 不自动部署生产环境。

实验记录

实验:在 Windows 本机按发布门禁运行后端测试、后端 package、前端测试/生产构建和桌面前端构建,并检查发布工作流的资产路径与校验和逻辑。
结果:后端 134 tests 通过、5 个 opt-in 外部集成按默认配置跳过;后端 mvn -B -DskipTests package 成功并生成可执行 JAR 与 source JAR;前端 59 passed 和 Vite production build 通过;桌面 npm run build 通过。桌面 NSIS 未在本机执行,因环境没有 cargo,发布工作流会在 windows-latest 通过 dtolnay/rust-toolchain@stable 提供 Rust。
结论:发布配置、Maven 包装和 Web 资产在本地可复现;NSIS 与 GitHub Release/Packages 上传需由合并后的 tag 工作流完成,不能由本地结果外推。

验证

cd backend && mvn -B test
结果:134 tests, 0 failures, 0 errors; 5 opt-in integration tests skipped

cd backend && mvn -B -DskipTests package
结果:BUILD SUCCESS;babelflux-backend-0.1.0.jar 与 babelflux-backend-0.1.0-sources.jar 已生成

cd frontend && npm ci && npm run test && npm run build
结果:9 test files, 59 passed;vue-tsc 与 Vite production build 通过

cd desktop && npm ci && npm run build
结果:vue-tsc 与 Vite production build 通过

cd desktop && npm run client:bundle
结果:未执行成功,当前本机没有 cargo;不影响工作流在 Windows runner 安装 Rust 后执行

git diff --check
结果:通过
  • Backend tests/lint
  • Frontend tests/build
  • Desktop build(前端构建已通过;NSIS 由 Windows release job 验证)
  • 手动验证或截图(本 PR 以构建与资产路径静态检查为主)

风险与回滚

  • 风险:GitHub Packages 和 Release 依赖仓库 GITHUB_TOKEN 的 packages: write/contents: write 权限;Windows NSIS 依赖 runner 的 Rust、WebView2 和 Tauri 工具链。Release 资产生成前任一 job 失败都不会发布。
  • 回滚方式:不重写已公开的 tag 或 Package;修复工作流后使用新的补丁版本重新发布。生产环境回滚沿用 deployment/README.md 切回前一个已验证 Release,当前工作流不执行生产部署。

提交前检查

@ZhaoXingPeng
ZhaoXingPeng merged commit 5cdeb0d into main Sep 11, 2026
3 checks passed
@ZhaoXingPeng
ZhaoXingPeng deleted the ci/initial-release branch September 11, 2026 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🚀 ci(release): 建立 v0.1.0 初始发布与包分发

1 participant