dev_1.0.0_sundp_2 优化Argus-metric模块的e2e部署测试流程 (#27)

Co-authored-by: sundapeng.sdp <sundapeng@hashdata.cn>
Reviewed-on: #27
Reviewed-by: yuyr <yuyr@zgclab.edu.cn>
Reviewed-by: xuxt <xuxt@zgclab.edu.cn>
This commit was merged in pull request #27.
This commit is contained in:
2025-10-17 17:15:55 +08:00
parent 31ccb0b1b8
commit 1a768bc837
36 changed files with 1805 additions and 695 deletions

View File

@@ -29,26 +29,68 @@ log_error() {
show_help() {
echo "Argus-Metric Artifact 发布脚本"
echo
echo "用法: $0 <版本号>"
echo "用法: $0 <版本号> [选项]"
echo
echo "参数:"
echo " <版本号> 要发布的版本号,对应 artifact 目录中的版本"
echo " <版本号> 要发布的版本号,对应 artifact 目录中的版本"
echo
echo "选项:"
echo " --output-dir <路径> 指定输出目录 (默认: /private/argus/ftp/share/)"
echo " --owner <uid:gid> 指定文件所有者 (默认: 2133:2015)"
echo " -h, --help 显示此帮助信息"
echo
echo "示例:"
echo " $0 1.20.0 # 发布 1.20.0 版本"
echo " $0 1.20.0 # 使用默认配置发布"
echo " $0 1.20.0 --output-dir /tmp/publish # 指定输出目录"
echo " $0 1.20.0 --owner 1000:1000 # 指定文件所有者"
echo " $0 1.20.0 --output-dir /srv/ftp --owner root:root # 同时指定两者"
echo
}
# 检查参数
if [[ $# -ne 1 ]]; then
# 默认配置
DEFAULT_PUBLISH_DIR="/private/argus/ftp/share/"
DEFAULT_OWNER="2133:2015"
# 解析参数
VERSION=""
PUBLISH_DIR="$DEFAULT_PUBLISH_DIR"
OWNER="$DEFAULT_OWNER"
while [[ $# -gt 0 ]]; do
case $1 in
-h|--help)
show_help
exit 0
;;
--output-dir)
PUBLISH_DIR="$2"
shift 2
;;
--owner)
OWNER="$2"
shift 2
;;
*)
if [[ -z "$VERSION" ]]; then
VERSION="$1"
shift
else
log_error "未知参数: $1"
show_help
exit 1
fi
;;
esac
done
# 检查版本号是否提供
if [[ -z "$VERSION" ]]; then
log_error "请提供版本号参数"
show_help
exit 1
fi
VERSION="$1"
ARTIFACT_DIR="artifact/$VERSION"
PUBLISH_DIR="/Users/sundapeng/Project/nlp/aiops/client-plugins/all-in-one/publish/"
# 检查版本目录是否存在
if [[ ! -d "$ARTIFACT_DIR" ]]; then
@@ -57,10 +99,12 @@ if [[ ! -d "$ARTIFACT_DIR" ]]; then
fi
log_info "开始发布版本: $VERSION"
log_info "输出目录: $PUBLISH_DIR"
log_info "文件所有者: $OWNER"
# 确保发布目录存在
log_info "确保发布目录存在: $PUBLISH_DIR"
mkdir -p "$PUBLISH_DIR"
sudo mkdir -p "$PUBLISH_DIR"
# 创建临时目录用于打包
TEMP_PACKAGE_DIR="/tmp/argus-metric-package-$$"
@@ -164,20 +208,26 @@ fi
TAR_NAME="argus-metric_$(echo $VERSION | tr '.' '_').tar.gz"
log_info "创建发布包: $TAR_NAME"
cd "$TEMP_PACKAGE_DIR"
tar -czf "$PUBLISH_DIR/$TAR_NAME" *
sudo tar -czf "$PUBLISH_DIR/$TAR_NAME" *
cd - > /dev/null
# 设置文件所有者
log_info "设置文件所有者为: $OWNER"
sudo chown "$OWNER" "$PUBLISH_DIR/$TAR_NAME"
# 清理临时目录
rm -rf "$TEMP_PACKAGE_DIR"
# 更新 LATEST_VERSION 文件
log_info "更新 LATEST_VERSION 文件..."
echo "$VERSION" > "$PUBLISH_DIR/LATEST_VERSION"
echo "$VERSION" | sudo tee "$PUBLISH_DIR/LATEST_VERSION" > /dev/null
sudo chown "$OWNER" "$PUBLISH_DIR/LATEST_VERSION"
# 复制 DNS 配置文件到发布目录根目录(直接从 config 目录复制)
if [[ -f "config/dns.conf" ]]; then
log_info "复制 DNS 配置文件到发布目录根目录..."
cp "config/dns.conf" "$PUBLISH_DIR/"
sudo cp "config/dns.conf" "$PUBLISH_DIR/"
sudo chown "$OWNER" "$PUBLISH_DIR/dns.conf"
log_success "DNS 配置文件复制完成: $PUBLISH_DIR/dns.conf"
else
log_warning "未找到 config/dns.conf 文件,跳过 DNS 配置文件复制"
@@ -186,7 +236,8 @@ fi
# 复制 setup.sh 到发布目录
if [[ -f "scripts/setup.sh" ]]; then
log_info "复制 setup.sh 到发布目录..."
cp "scripts/setup.sh" "$PUBLISH_DIR/"
sudo cp "scripts/setup.sh" "$PUBLISH_DIR/"
sudo chown "$OWNER" "$PUBLISH_DIR/setup.sh"
fi
# 显示发布结果