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
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."
|