Add fast server update script
This commit is contained in:
@@ -46,6 +46,14 @@ APP_DIR="$HOME/zk-data-agent-test" bash "$HOME/zk-data-agent-test/scripts/instal
|
||||
bash scripts/deploy-ubuntu.sh
|
||||
```
|
||||
|
||||
已完成首次部署后,如果只是普通代码更新,可以使用快速更新:
|
||||
|
||||
```bash
|
||||
bash scripts/update-server-fast.sh
|
||||
```
|
||||
|
||||
快速更新只会拉取代码、构建前端并重启用户服务;如果本次改动包含依赖、systemd 模板或部署脚本变化,请使用 `scripts/deploy-ubuntu.sh`。
|
||||
|
||||
如果是全新 Ubuntu 机器,首次安装可以让脚本顺手安装系统依赖:
|
||||
|
||||
```bash
|
||||
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# 快速更新脚本:适合已经完成首次部署后的日常代码更新。
|
||||
# 只做 git 更新、前端 build、重启用户级服务;不检查/安装系统依赖,不重装 Python/npm 依赖。
|
||||
# 如果本次改动包含依赖、systemd 模板或部署脚本变化,请使用 scripts/deploy-ubuntu.sh。
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
BACKEND_SERVICE="zk-data-agent-backend"
|
||||
FRONTEND_SERVICE="zk-data-agent-frontend"
|
||||
BRANCH="${1:-}"
|
||||
|
||||
log() {
|
||||
printf "\n\033[1;34m==>\033[0m %s\n" "$1"
|
||||
}
|
||||
|
||||
fail() {
|
||||
printf "\033[1;31mERROR\033[0m %s\n" "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
cd "${ROOT_DIR}"
|
||||
[[ -d .git ]] || fail "${ROOT_DIR} 不是 git 仓库。"
|
||||
|
||||
if [[ -z "${BRANCH}" ]]; then
|
||||
BRANCH="$(git branch --show-current)"
|
||||
fi
|
||||
[[ -n "${BRANCH}" ]] || fail "无法判断当前分支,请显式传入分支名。"
|
||||
|
||||
if [[ -n "$(git status --porcelain)" ]]; then
|
||||
fail "工作区有未提交改动。请先处理后再快速更新。"
|
||||
fi
|
||||
|
||||
log "拉取代码:origin/${BRANCH}"
|
||||
git fetch origin
|
||||
git checkout "${BRANCH}"
|
||||
git pull --ff-only origin "${BRANCH}"
|
||||
|
||||
log "构建前端"
|
||||
cd "${ROOT_DIR}/frontend/app"
|
||||
npm run build
|
||||
|
||||
log "重启用户服务"
|
||||
systemctl --user restart "${BACKEND_SERVICE}" "${FRONTEND_SERVICE}"
|
||||
|
||||
log "健康检查"
|
||||
sleep 1
|
||||
systemctl --user --no-pager --lines=0 status "${BACKEND_SERVICE}" "${FRONTEND_SERVICE}"
|
||||
|
||||
echo
|
||||
echo "快速更新完成。"
|
||||
Reference in New Issue
Block a user