# TiEM 打包

## 正式打包

### Prerequisite

1. `tiup`，请参考 [Deploy a TiDB Cluster Using TiUP](https://docs.pingcap.com/tidb/stable/production-deployment-using-tiup#step-2-deploy-tiup-on-the-control-machine) 安装 `tiup`

### 0. 重建仓库

> 由于仓库内的内容不可下架，所以如果要在包内只含有最新版本，请执行当前步骤来重置仓库

将 [reset_em_repo.sh](https://github.com/pingcap-inc/tiem-ft/tree/master/cd/package/reset_em_repo.sh) 拷贝到打包机器的 /root/ 路径下，并以 root 权限执行下面的命令。

```shell
sh reset_em_repo.sh
```

### 1. 准备前端包

1. 向前端同学获取前端包 release 地址（例如 https://github.com/pingcap-inc/tiem-ui/releases/tag/v1.0.0-beta.3 ），下载 release.tar.gz 并放置于打包机器的 /root/fe 路径下，如果当前有就替换掉

### 2. 执行更新仓库脚本

将 [update_em_repo.sh](https://github.com/pingcap-inc/tiem-ft/tree/master/cd/package/update_em_repo.sh) 拷贝到打包机器的 /root/ 路径下，并以 root 权限执行下面的命令。

```shell
sh update_em_repo.sh <tiunimanager 文件夹> <后端分支> <前端 release 包路径> <源文件夹> <发布版本号> <平台>
# 下面是个例子
sh update_em_repo.sh /root/tiunimanager main /root/fe/release.tar.gz /home/tiup-opts 1.0.3 amd
```

### 3. 执行打包脚本

将 [package_em.sh](https://github.com/pingcap-inc/tiem-ft/tree/master/cd/package/package_em.sh) 拷贝到打包机器的 /root/ 路径下，并以 root 权限执行下面的命令。

```shell
sh package_em.sh <发布版本号>
# 这里的版本号是和第2步一致，下面是个例子
sh package_em.sh 1.0.3 amd
```

### 4. 将包放入可下载路径

至此，会有一个打好的包放置于打包机器 /home/em-enterprise-server-v<版本号>-linux-amd64.tar.gz 处。

最后请检查下 /home/packages/ 目录下包的情况，比如是否有重复的包就做好备份处理。

然后执行下面的命令将打好的包放入 /home/packages/ 目录下，以让用户下载。

```shell
mv /home/em-enterprise-server-v<版本号>-linux-amd64.tar.gz /home/packages/
```

放好后，下载链接为：http://172.16.5.148:8080/packages/em-enterprise-server-v<版本号>-linux-amd64.tar.gz
