本文档详细说明了 FlowExcel 项目的 CI/CD 流程和发布步骤。
我们的项目使用 GitHub Actions 实现完整的 CI/CD 流程,包含两个主要工作流:
- 触发条件: 推送到
main或develop分支,Pull Request - 功能:
- 前端代码检查 (ESLint, TypeScript)
- 后端测试和覆盖率报告
- 快速构建测试 (仅 Linux)
- 安全审计
- 触发条件:
- 推送版本标签 (
v*.*.*) - 手动触发 (workflow_dispatch)
- Pull Request (仅质量检查)
- 推送版本标签 (
- 功能:
- 多平台构建 (Windows, macOS, Linux)
- 自动发布到 GitHub Releases
- 构建产物上传
每次推送代码或创建 PR 时,会自动运行以下检查:
# 前端检查
✅ ESLint 代码风格检查
✅ TypeScript 类型检查
✅ 前端构建测试
# 后端检查
✅ Python 代码测试
✅ 测试覆盖率报告
✅ 测试结果上传
# 构建测试
✅ 完整构建流程测试 (Linux)
# 安全检查
✅ Rust 依赖安全审计
✅ Node.js 依赖安全审计在提交代码前,建议运行本地测试:
# 前端测试
pnpm lint
pnpm build:frontend
# 后端测试
cd src-python
uv sync --dev
uv run python src/test/run_all_tests.py
# 完整构建测试
pnpm build:backend
pnpm build:frontend我们支持以下平台的自动构建:
| 平台 | 架构 | Runner | 状态 |
|---|---|---|---|
| Windows | x64 | windows-latest |
✅ 已测试 |
| macOS | Apple Silicon (ARM64) | macos-14 |
✅ 已测试 |
| Linux | x64 | ubuntu-20.04 |
每个平台的构建流程包含:
-
环境准备
- Node.js 20 + pnpm
- Python 3.11 + uv
- Rust 工具链
- 平台特定依赖
-
依赖安装
pnpm install # 前端依赖 uv sync # Python 依赖
-
构建步骤
uv run python build_binary.py # 构建 Python 后端 pnpm build:frontend # 构建前端 tauri build # 构建 Tauri 应用
-
产物生成
- Windows:
.exe安装程序和便携版 - macOS:
.dmg磁盘镜像和.app应用包 - Linux:
.deb和.AppImage格式
- Windows:
我们提供了自动化发布脚本:
# 创建草稿发布 (默认)
node scripts/release.js 1.0.0
# 创建预发布版本
node scripts/release.js 1.0.0-beta.1 prerelease
# 创建正式发布
node scripts/release.js 1.0.0 release脚本会自动:
- ✅ 检查 Git 状态
- ✅ 更新所有配置文件中的版本号
- ✅ 提交版本更改
- ✅ 创建版本标签
- ✅ 推送到远程仓库
- ✅ 触发 GitHub Actions 构建
-
更新版本号
# 手动更新以下文件中的版本号: - package.json - src-tauri/tauri.conf.json - src-tauri/Cargo.toml - src-python/pyproject.toml -
提交并创建标签
git add . git commit -m "chore: bump version to v1.0.0" git tag -a v1.0.0 -m "Release v1.0.0" git push origin main git push origin v1.0.0
-
监控构建
- 访问 GitHub Actions 页面查看构建状态
- 构建完成后,发布将自动创建在 GitHub Releases
在 GitHub Actions 页面手动触发 "Build and Release" 工作流:
- 访问
Actions→Build and Release - 点击
Run workflow - 选择分支和发布类型
- 点击
Run workflow
- Draft: 草稿发布,不公开,用于内部测试
- Prerelease: 预发布版本,标记为预发布
- Release: 正式发布版本
每次发布包含:
📦 FlowExcel v1.0.0 发布
### 📦 支持平台
- Windows x64
- macOS Apple Silicon (ARM64)
- Linux x64
### 📋 更新内容
[自动生成的更新日志]
### 📁 包含文件
- flowexcel_windows-x64.exe
- flowexcel_macos-arm64.dmg
- flowexcel_linux-x64.deb
- flowexcel_linux-x64.AppImage
在 GitHub 仓库设置中配置:
| Secret | 描述 | 必需 |
|---|---|---|
GITHUB_TOKEN |
GitHub 自动提供,用于发布 | ✅ |
| Secret | 描述 | 用途 |
|---|---|---|
TAURI_SIGNING_PRIVATE_KEY |
macOS 代码签名私钥 | macOS 签名 |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD |
私钥密码 | macOS 签名 |
- 检查日志: 查看 GitHub Actions 的详细日志
- 本地复现: 在对应平台本地运行构建命令
- 依赖问题: 检查是否有依赖版本冲突
- 重试构建: 有时网络问题会导致临时失败
- 确保标签格式正确 (
v1.0.0) - 检查构建是否全部成功
- 查看 GitHub Actions 日志中的错误
在 .github/workflows/build-and-release.yml 中的 matrix 部分添加新配置:
- platform: platform-name
os: runner-name
rust_target: rust-target-triple修改 .github/workflows/build-and-release.yml 中的 releaseBody 部分。
使用 act 工具:
# 安装 act
brew install act # macOS
# 或 choco install act # Windows
# 运行 CI 工作流
act pull_request如遇到构建或发布问题,请:
- 查看 GitHub Issues
- 检查 GitHub Actions 日志
- 提交新的 Issue 并附上详细的错误信息
- ⚡ 快速反馈 (< 10 分钟)
- 🔄 并行执行多个检查
- 📊 生成测试覆盖率报告
- 🔒 安全审计
- 🌍 多平台并行构建
- 📦 自动打包和上传
- 🏷️ 自动生成发布说明
- 🔄 支持草稿和预发布