# 客户侧组件安装包构建、发布流程

## 第一步：配置版本和组件

首先搞定配置文件：

1. 把 `.checklist.example` 重命名成 `checklist`
2. 把 `.VERSION.example` 重命名成 `VERSION`

### checklist 文件格式
```
# 组件名称 目录路径 版本号 [依赖组件] [安装顺序]
dcgm-exporter-installer /path/to/dcgm-exporter-installer 1.1.0
node-exporter-installer /path/to/node-exporter-installer 1.1.0
```

### VERSION 文件
设置需要发布的版本号，比如 `1.29.0`

> 建议用 `version-manager.sh` 来管理版本

## 第二步：构建安装包

直接跑脚本：
```bash
./package_artifact.sh
```

构建完的东西会放在 `artifact/` 目录下，按版本分文件夹。

如果版本已经存在了，想要覆盖重新构建：
```bash
./package_artifact.sh --force
```

构建完可以手工测试安装包。

## 第三步：发布安装包

用这个脚本发布：
```bash
./publish_artifact.sh
```

发布后的内容在 `publish/` 目录里，包含：
- 压缩版本的安装包
- 一键安装的bash脚本

## 第四步：部署到FTP服务器

把发布的内容上传到FTP服务器，客户端就可以通过一键命令安装：

```bash
curl -fsSL 'ftp://{$USER}:{$PASSWD}@{$your-ftp-server}/setup.sh' -o setup.sh

# root用户直接执行，非root用户需要使用sudo
chmod +x setup.sh
bash setup.sh --server {$your-ftp-server} --user {$USER} --password {$PASSWD}

示例：
curl -fsS 'ftp://ftpuser:ZGClab1234!@177.177.70.200/setup.sh' -o setup.sh
chmod +x setup.sh
bash setup.sh --server {$域名} --user ftpuser --password 'ZGClab1234!'

```