refactor: 重命名和替换构建及上传脚本

- 删除旧的 build-all.sh 和 upload.sh 脚本
- 新增 all-build.sh 和 all-upload-release.sh 脚本,支持从 version.json 自动读取版本号
- 更新 Makefile 和 README.md 以反映脚本名称的更改和新功能
This commit is contained in:
2025-12-07 18:05:27 +08:00
parent ac3c7e2b4c
commit 7ac5d54a84
5 changed files with 179 additions and 57 deletions

112
README.md
View File

@@ -280,36 +280,36 @@ BACKEND_URL=http://192.168.1.100:8080 ./run.sh start
- 需要确保源码目录存在且是 Git 仓库
- 需要 Go 环境已安装并在 PATH 中
### 5. build-all.sh - 跨平台编译脚本
### 5. all-build.sh - 跨平台编译脚本
编译多个操作系统和架构的二进制文件,支持并行编译。
编译多个操作系统和架构的二进制文件,支持并行编译。**版本号自动从 `version.json` 读取**。
**使用方法:**
```bash
# 编译所有平台
./build-all.sh
# 编译所有平台(自动使用 version.json 中的版本号)
./all-build.sh
# 只编译指定平台
./build-all.sh -p linux/amd64
./all-build.sh -p linux/amd64
# 编译前清理输出目录
./build-all.sh -c
./all-build.sh -c
# 设置并行编译数量
./build-all.sh -j 2
./all-build.sh -j 2
# 设置版本号
./build-all.sh -v 1.0.0
# 覆盖版本号(覆盖 version.json 中的版本)
./all-build.sh -v 1.0.0
# 只生成不带版本号的文件
./build-all.sh -s
./all-build.sh -s
# 列出所有支持的平台
./build-all.sh -l
./all-build.sh -l
# 显示帮助信息
./build-all.sh -h
./all-build.sh -h
```
**支持的平台:**
@@ -321,53 +321,63 @@ BACKEND_URL=http://192.168.1.100:8080 ./run.sh start
- `windows/arm64` - Windows ARM64
**功能特性:**
- 支持并行编译(默认 4 个任务
- 自动生成带版本号和不带版本号的文件
- 输出到 `bin/` 目录
- 显示编译进度和结果
- 支持清理输出目录
- **自动从 `version.json` 读取版本号**(无需手动指定
- ✅ 支持并行编译(默认 4 个任务)
- ✅ 自动生成带版本号和不带版本号的文件
- ✅ 输出到 `bin/` 目录
- ✅ 显示编译进度和结果
- ✅ 支持清理输出目录
**输出文件:**
- `bin/agent-{os}-{arch}` - 不带版本号的二进制文件
- `bin/agent-{os}-{arch}-{version}` - 带版本号的二进制文件
- Windows 平台会自动添加 `.exe` 扩展名
### 6. upload.sh - 发布上传脚本
**版本管理:**
版本号统一从 `version.json` 文件读取:
```json
{
"version": "1.1.0",
"tag": "v1.1.0"
}
```
将编译好的二进制文件上传到 Releases 或通过其他方式发布。
### 6. all-upload-release.sh - 发布上传脚本
将编译好的二进制文件上传到 Releases 或通过其他方式发布。**版本号和标签自动从 `version.json` 读取Token 已硬编码**。
**使用方法:**
```bash
# 上传到 Gitea Releases自动从 .git/config 读取仓库信息)
./upload.sh -m gitea -t v1.0.0 -v 1.0.0
# 上传到 Gitea Releases自动从 version.json 和 .git/config 读取信息)
./all-upload-release.sh -m gitea
# 指定 Gitea 访问令牌
./upload.sh -m gitea -t v1.0.0 -v 1.0.0 -T your_token
# 上传到 Gitea Releases覆盖版本号和标签
./all-upload-release.sh -m gitea -t v1.2.0 -v 1.2.0
# 上传到 GitHub Releases
./upload.sh -m github -r owner/repo -t v1.0.0 -v 1.0.0
./all-upload-release.sh -m github -r owner/repo -t v1.0.0 -v 1.0.0
# 通过 SCP 上传
./upload.sh -m scp -H example.com -u user -d /path/to/release
./all-upload-release.sh -m scp -H example.com -u user -d /path/to/release
# 通过 SCP 上传(指定私钥)
./upload.sh -m scp -H example.com -u user -d /path/to/release -k ~/.ssh/id_rsa
./all-upload-release.sh -m scp -H example.com -u user -d /path/to/release -k ~/.ssh/id_rsa
# 通过 FTP 上传
./upload.sh -m ftp -H ftp.example.com -u user -d /path/to/release
./all-upload-release.sh -m ftp -H ftp.example.com -u user -d /path/to/release
# 复制到本地目录
./upload.sh -m local -d /path/to/release
./all-upload-release.sh -m local -d /path/to/release
# 只打包不上传
./upload.sh --pack-only -v 1.0.0
./all-upload-release.sh --pack-only
# 不上传压缩包,直接上传二进制文件
./upload.sh -m scp --no-pack -H example.com -u user -d /path/to/release
./all-upload-release.sh -m scp --no-pack -H example.com -u user -d /path/to/release
# 显示帮助信息
./upload.sh -h
./all-upload-release.sh -h
```
**支持的上传方式:**
@@ -378,19 +388,21 @@ BACKEND_URL=http://192.168.1.100:8080 ./run.sh start
- `local` - 复制到本地目录
**功能特性:**
- 自动打包二进制文件tar.gz 或 zip
- 自动创建发布说明
- 支持指定平台上传
- 支持自定义版本号和标签
- 支持自定义发布说明
- 自动检测并处理已存在的 Release
- **自动从 `version.json` 读取版本号和标签**(无需手动指定
- **Token 已硬编码**(无需手动指定)
- ✅ 自动打包二进制文件tar.gz 或 zip
- ✅ 自动创建发布说明
- ✅ 支持指定平台上传
- ✅ 支持自定义版本号和标签(覆盖配置文件)
- ✅ 支持自定义发布说明
- ✅ 自动检测并处理已存在的 Release
**参数说明:**
- `-m, --method`: 上传方式gitea|github|scp|ftp|local
- `-v, --version`: 版本号(默认: 时间戳
- `-t, --tag`: Git 标签(Releases 需要
- `-m, --method`: 上传方式gitea|github|scp|ftp|local,默认: gitea
- `-v, --version`: 版本号(默认: 从 version.json 读取
- `-t, --tag`: Git 标签(默认: 从 version.json 读取
- `-p, --platform`: 只上传指定平台
- `-T, --token`: 访问令牌(Gitea/GitHub
- `-T, --token`: 访问令牌(已硬编码,此选项已废弃
- `-H, --host`: 主机地址SCP/FTP
- `-u, --user`: 用户名SCP/FTP
- `-d, --dest`: 目标路径SCP/FTP/local
@@ -398,6 +410,24 @@ BACKEND_URL=http://192.168.1.100:8080 ./run.sh start
- `--pack-only`: 只打包不上传
- `--no-pack`: 不上传压缩包,直接上传二进制文件
**版本管理:**
版本号和标签统一从 `version.json` 文件读取:
```json
{
"version": "1.1.0",
"tag": "v1.1.0"
}
```
**典型工作流程:**
```bash
# 1. 编译所有平台(自动使用 version.json 中的版本号)
./all-build.sh
# 2. 上传到 Gitea Releases自动使用 version.json 中的版本号和标签)
./all-upload-release.sh -m gitea
```
### 7. vendor.sh - Vendor 依赖打包脚本
将项目依赖下载到 vendor 目录,客户端克隆后可直接编译,无需网络连接。