You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
1.7 KiB

#!/bin/bash
# 定义颜色输出(可选,让提示更清晰)
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
# 打印错误信息并退出
error_exit() {
echo -e "${RED}Error: $1${NC}" >&2
exit 1
}
# 打印普通提示
info_msg() {
echo -e "${GREEN}$1${NC}"
}
# 更新前端
update_frontend() {
info_msg "Updating frontend..."
cd /root/hami || error_exit "Failed to enter /root/hami directory"
make build-image DOCKER_IMAGE=projecthami/hami-webui-fe VERSION=dev || error_exit "Frontend build failed"
UPDATED=1
}
# 更新后端
update_backend() {
info_msg "Updating backend..."
cd /root/hami/server || error_exit "Failed to enter /root/hami/server directory"
make build-image DOCKER_IMAGE=projecthami/hami-webui-be VERSION=dev || error_exit "Backend build failed"
UPDATED=1
}
# 重启 Kubernetes 服务
restart_service() {
info_msg "Restarting service with k8s.yml..."
cd /root/hami || error_exit "Failed to enter /root/hami directory"
kubectl delete -f k8s.yml || error_exit "Failed to delete k8s resources"
sleep 2 # 可选:等待资源清理
kubectl create -f k8s.yml || error_exit "Failed to create k8s resources"
info_msg "Service restarted successfully."
}
# 显示用法
usage() {
echo "Usage: $0 {all|frontend|backend}"
exit 1
}
# 主逻辑
UPDATED=0
cd /root/hami
git pull
case "$1" in
all)
update_frontend
update_backend
;;
frontend)
update_frontend
;;
backend)
update_backend
;;
"")
echo "Error: No argument provided."
usage
;;
*)
echo "Error: Invalid argument '$1'."
usage
;;
esac
# 如果执行了任何更新,则重启服务
if [ "$UPDATED" -eq 1 ]; then
restart_service
fi
info_msg "Update and restart process finished."