加双平台发布配置指引(Gitee + EzHub)

This commit is contained in:
xmz7891
2026-10-07 12:20:17 +08:00
parent ad8b73f990
commit 2d99c05865
+108
View File
@@ -0,0 +1,108 @@
# 双平台发布(Gitee + EzHub)
## 平台
| | 地址 | 类型 |
|---|---|---|
| **Gitee** | `git@gitee.com:xmz7891/ykxmz.git` | Gitee(API v5) |
| **EzHub** | `ssh://git@git.261826.xyz/xmz/ykxmz.git` | **Gitea 1.22.0**(API v1) |
本地 remote 已配好:`origin` = Gitee,`ezhub` = EzHub。
---
## 一次性配置(需要你操作两件事)
### 1. 把 SSH 公钥加到 EzHub
我已经生成了一把**专用于 EzHub** 的密钥(不复用 Gitee 那把,权限隔离):
```
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMFMh2Zqwm+8KFhU3DhzhOO5Sx7cIzybYqUsrbt1c3ly ykxmz-ezhub
```
**操作**:EzHub 网页 → 右上角头像 → **设置** → **SSH / GPG 密钥** → **增加密钥**
→ 把上面那一整行粘进去 → 保存。
本机配置(已写好,不用你管):
```
# ~/.ssh/config
Host git.261826.xyz
HostName git.261826.xyz
User git
IdentityFile ~/.ssh/id_ed25519_ezhub
IdentitiesOnly yes
ServerAliveInterval 30
```
### 2. 生成 EzHub 的 API 令牌
SSH 密钥只能推代码,**建发行版必须要令牌**。
**操作**:EzHub 网页 → **设置** → **应用** → **生成令牌**
→ 名称随便(比如 `ykxmz-release`)→ 权限勾 **`write:repository`** → 生成 → 复制。
> 令牌只从命令行传给脚本,不落盘、不进仓库。
---
## 日常发布
```powershell
cd C:\Users\shu\Desktop\deepseekagent\LanRemote
# 先演练(不真的发,只看会做什么)
python _build\release_all.py <gitee令牌> <ezhub令牌> 1.8.0 --dry
# 确认无误再正式发
python _build\release_all.py <gitee令牌> <ezhub令牌> 1.8.0
```
脚本会依次做:
1. **前置检查**
- 三个产物在不在(安装包 exe / 服务端 zip / 手表 apk)
- 从 `CHANGELOG.md` 取这个版本的更新说明
- 工作区干不干净(不干净就拒绝 —— 否则推上去的和测过的不是一份)
- **对外口径检查**:更新说明里出现管理页字眼直接拒绝
2. **推代码**到 `origin` 和 `ezhub`
3. **建发行版**并传三个附件到两个平台
4. 打印两边发行版地址
---
## 两个平台的接口差别(写代码时容易错的地方)
| 项目 | Gitee | Gitea / EzHub |
|---|---|---|
| API 前缀 | `/api/v5/repos/...` | `/api/v1/repos/...` |
| 认证方式 | 参数 `access_token` | 请求头 `Authorization: token <t>` |
| 传附件路径 | `/releases/{id}/attach_files` | `/releases/{id}/assets?name=<文件名>` |
| 附件字段名 | `file` | **`attachment`** |
| 草稿/预发布 | 只有 `prerelease` | `draft` + `prerelease` |
**最容易踩的**:EzHub 的文件名要走**查询参数** `?name=`,
不是 Gitee 那种放 `Content-Disposition` 里。
---
## 单独发某一个平台
```powershell
# 只发 EzHub
python _build\ezhub_release.py <ezhub令牌> 1.8.0
# 只发 Gitee
python _build\gitee_release.py <gitee令牌> 1.8.0
```
---
## 注意事项
- **私钥在 `~/.ssh/`,仓库外,不会进版本库。** 已用 `git ls-files` 确认过。
- 令牌**不要**提交到仓库,也不要写进任何脚本。
- 发行版说明**只放更新内容**(用户要求),脚本自动从 CHANGELOG 取,
不会套额外的标题。
- 重发同一个版本时,脚本会先按标签查已有的发行版并复用,不会报错。