Files
qiming/qiming-mcp-proxy/CARGO_DIST_SETUP.md
2026-06-01 13:03:20 +08:00

176 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# cargo-dist 配置完成总结
## ✅ 已完成的配置
### 1. 初始化 cargo-dist
使用官方命令初始化:
```bash
dist init --yes
```
这会自动创建:
- `[profile.dist]``Cargo.toml`(工作区级别)
- `dist-workspace.toml` 配置文件
- `.github/workflows/release.yml` GitHub Actions 工作流
### 2. 配置文件
#### `dist-workspace.toml`
```toml
[workspace]
members = ["cargo:."]
[dist]
cargo-dist-version = "0.30.3"
ci = "github"
installers = ["shell", "powershell"]
targets = [
"aarch64-apple-darwin",
"aarch64-unknown-linux-gnu",
"x86_64-apple-darwin",
"x86_64-unknown-linux-gnu",
"x86_64-pc-windows-msvc"
]
```
#### 各子项目的 `Cargo.toml` 添加
```toml
[package]
repository = "https://github.com/nuwax-ai/mcp-proxy"
```
已更新:
-`mcp-proxy/Cargo.toml` (已有 repository)
-`document-parser/Cargo.toml`
-`voice-cli/Cargo.toml`
### 3. GitHub Actions 工作流
文件:`.github/workflows/release.yml`
自动执行:
1. **Plan** - 检测到 git tag 时,计算需要构建的内容
2. **Build** - 为每个目标平台构建二进制文件
3. **Host** - 创建 GitHub Release 并上传所有产物
### 4. 产物格式
每次发布会生成:
#### 每个 二进制文件
- `{name}-{target}.tar.xz` (Linux/macOS)
- `{name}-{target}.zip` (Windows)
- 对应的 SHA256 校验和
#### 全局产物
- `{name}-installer.sh` - Shell 安装脚本 (Linux/macOS)
- `{name}-installer.ps1` - PowerShell 安装脚本 (Windows)
- `sha256.sum` - 所有文件的校验和
- `source.tar.gz` - 源码压缩包
## 🚀 发布流程
### 1. 更新版本号
```bash
# 更新各子项目的 version
vim mcp-proxy/Cargo.toml
vim document-parser/Cargo.toml
vim voice-cli/Cargo.toml
```
### 2. 提交并打标签
```bash
git add .
git commit -m "release: v0.2.0"
git tag v0.2.0
git push
git push --tags
```
### 3. 自动触发 GitHub Actions
推送 tag 后GitHub Actions 自动:
- ✅ 构建所有平台
- ✅ 生成安装脚本
- ✅ 创建 Release
- ✅ 上传产物
## 📥 用户安装方式
### 最简单(推荐)
```bash
# Linux/macOS
curl --proto '=https' --tlsv1.2 -sSf \
https://github.com/nuwax-ai/mcp-proxy/releases/latest/download/mcp-stdio-proxy-installer.sh | sh
# Windows PowerShell
irm https://github.com/nuwax-ai/mcp-proxy/releases/latest/download/mcp-stdio-proxy-installer.ps1 | iex
```
### 从 Releases 页面下载
访问https://github.com/nuwax-ai/mcp-proxy/releases
### cargo install
```bash
cargo install mcp-stdio-proxy
```
### cargo-binstall
```bash
cargo binstall mcp-stdio-proxy
```
## 🔧 本地测试发布
```bash
# 查看发布计划
dist plan --tag=v0.2.0
# 构建全局产物(安装脚本)
dist build --tag=v0.2.0 --artifacts=global
# 查看生成的文件
ls -la target/distrib/
```
## 📝 文档
- `RELEASE.md` - 完整的发布指南
- `README.md` - 已更新安装方式章节
- `dist-workspace.toml` - cargo-dist 配置
- `.github/workflows/release.yml` - 自动化工作流
## 🎯 支持的平台
| 平台 | 目标三元组 |
|------|-----------|
| Linux x86_64 | x86_64-unknown-linux-gnu |
| Linux ARM64 | aarch64-unknown-linux-gnu |
| macOS Intel | x86_64-apple-darwin |
| macOS Apple Silicon | aarch64-apple-darwin |
| Windows x86_64 | x86_64-pc-windows-msvc |
## 📦 发布的二进制
1. **mcp-stdio-proxy** - 主 MCP 代理服务
2. **document-parser** - 文档解析服务
3. **voice-cli** - 语音转文字服务
## 🔐 校验和验证
每个 release 都包含 `sha256.sum` 文件:
```bash
# 下载校验和
curl -L -O https://github.com/nuwax-ai/mcp-proxy/releases/latest/download/sha256.sum
# 验证
sha256sum -c sha256.sum
```
## 📚 参考资源
- [cargo-dist 官方文档](https://axodotdev.github.io/cargo-dist/)
- [cargo-dist 配置参考](https://axodotdev.github.io/cargo-dist/book/reference/config.html)
- [项目 GitHub Releases](https://github.com/nuwax-ai/mcp-proxy/releases)