fix: use remote Memind lib in prod release

This commit is contained in:
john
2026-07-03 09:41:40 +08:00
parent 194e5ac1ef
commit 65fb8ed2b2
+5 -18
View File
@@ -20,14 +20,12 @@ TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/memindadm-release.XXXXXX")"
BUNDLE_PATH="${TMP_DIR}/memind-adm-${RELEASE_ID}.tar.gz"
MANIFEST_PATH="${TMP_DIR}/memind-adm-${RELEASE_ID}.manifest.txt"
SHA_PATH="${TMP_DIR}/memind-adm-${RELEASE_ID}.sha256"
MEMIND_SRC="${TEST_MEMIND_ROOT:-${ROOT}/../test-memind}"
MEMIND_LIB="${ROOT}/memind-lib"
DRY_RUN=0
SKIP_BUILD=0
AUTO_YES=0
cleanup() {
rm -rf "${TMP_DIR}" "${MEMIND_LIB}"
rm -rf "${TMP_DIR}"
}
trap cleanup EXIT
@@ -100,6 +98,7 @@ fi
say "本地预检查"
ssh -o BatchMode=yes -o ConnectTimeout=15 "${HOST}" "echo release-ssh-ok" >/dev/null
ssh -o BatchMode=yes "${HOST}" "test -d '${APP_DIR}' && test -f '${APP_DIR}/package.json'" >/dev/null
ssh -o BatchMode=yes "${HOST}" "MEMIND_LIB_ROOT=\$(grep -E '^MEMIND_LIB_ROOT=' '${APP_DIR}/.env' | tail -1 | cut -d= -f2-); test -n \"\${MEMIND_LIB_ROOT}\" && test -f \"\${MEMIND_LIB_ROOT}/user-auth.mjs\"" >/dev/null
if [[ "${SKIP_BUILD}" -ne 1 ]]; then
say "本地构建 dist103 不再执行前端构建)"
@@ -114,20 +113,6 @@ fi
exit 1
}
[[ -d "${MEMIND_SRC}" ]] || {
echo "缺少 test-memind 共享模块源: ${MEMIND_SRC}" >&2
exit 1
}
say "打包 Memind 共享模块到 memind-lib"
rm -rf "${MEMIND_LIB}"
mkdir -p "${MEMIND_LIB}"
find "${MEMIND_SRC}" -maxdepth 1 -name '*.mjs' -exec cp -f {} "${MEMIND_LIB}/" \;
[[ -f "${MEMIND_LIB}/user-auth.mjs" ]] || {
echo "memind-lib 缺少 user-auth.mjs" >&2
exit 1
}
if [[ "${AUTO_YES}" -ne 1 && "${DRY_RUN}" -ne 1 ]]; then
say "发布确认"
echo "目标主机: ${HOST}"
@@ -194,7 +179,8 @@ say() {
}
rollback() {
if [[ -d "${OLD_LIVE_DIR}" && ! -d "${APP_DIR}" ]]; then
if [[ -d "${OLD_LIVE_DIR}" ]]; then
rm -rf "${APP_DIR}"
mv "${OLD_LIVE_DIR}" "${APP_DIR}"
fi
ADM_ROOT="${APP_DIR}" ADM_PORT=5174 ADM_API_PORT=8085 bash "${APP_DIR}/scripts/remote_restart.sh" >/dev/null 2>&1 || true
@@ -229,6 +215,7 @@ done
[[ -d "${RELEASE_DIR}/dist" ]] || { echo "release bundle missing dist/" >&2; exit 1; }
[[ ! -d "${RELEASE_DIR}/src" ]] || { echo "release bundle must not contain src/" >&2; exit 1; }
[[ ! -d "${RELEASE_DIR}/memind-lib" ]] || { echo "release bundle must not contain bundled memind-lib/" >&2; exit 1; }
say "安装运行依赖"
cd "${RELEASE_DIR}"