mirror of
https://github.com/LHY0125/PathEditor.git
synced 2026-06-29 09:55:56 +08:00
8c1655d25c
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
v4.2 CI/CD 流水线 — 设计文档
日期: 2026-05-27 分支: v4.2 状态: 已确认
概述
为 PathEditor 添加 GitHub Actions CI/CD,实现 push 自动检查 + tag 自动构建发布。
触发策略
| 触发条件 | 做什么 |
|---|---|
| push 任意分支(不含 tag) | 前端类型检查 + lint + 测试,Rust check + clippy + test |
推送 tag v* |
Tauri 构建 NSIS 安装包,上传到 GitHub Release |
Workflow 1: CI
文件: .github/workflows/ci.yml
两个并行 job:
frontend (ubuntu-latest):
- 用 ubuntu 而非 windows,更快且不依赖系统 API
- 步骤:checkout → setup-node → npm ci → tsc --noEmit → npm run lint → npm test
rust (windows-latest):
- 必须用 windows(
winregcrate 依赖 Windows API) - 安装 GNU 工具链并 override,添加 MinGW bin 到 PATH
- 步骤:checkout → rustup toolchain install → override → PATH → cargo check → cargo clippy -- -D warnings → cargo test
Workflow 2: Release
文件: .github/workflows/release.yml
单一 job build-and-release (windows-latest):
- checkout → setup-node → npm ci → rustup + MinGW → npx tauri build → gh release upload
构建产物:NSIS 安装包(.exe),上传到对应 tag 的 GitHub Release。
MinGW 处理
- GitHub Actions
windows-latest自带 MSYS2,MinGW 位于C:\msys64\mingw64\bin cargo test运行时需要libmcfgthread-2.dll,将此路径加入PATH即可
范围限制
- 不做跨平台构建(项目仅面向 Windows)
- 不做覆盖率门槛
- Release 不重复跑 CI(tag 推送说明已通过 push 检查)