feat:参照研听的基础工程

This commit is contained in:
jingyun
2026-06-18 15:02:28 +08:00
commit 364fc837b3
367 changed files with 16495 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# 金值 Flutter web release 构建。产物输出到 build/web。
# 参数(环境变量覆盖):
# API_BASE_URL 接口地址(默认生产 API)
# BASE_HREF base href(默认 /flutter/
set -euo pipefail
API_BASE_URL="${API_BASE_URL:-https://jinzhi.api.local}"
BASE_HREF="${BASE_HREF:-/flutter/}"
echo "▶ flutter pub get"
flutter pub get
make runner
echo "▶ flutter build webbase-href=${BASE_HREF}api=${API_BASE_URL}"
flutter build web --release \
--base-href "$BASE_HREF" \
--dart-define=JINZHI_API_BASE_URL="$API_BASE_URL"
echo "✅ 构建完成 → build/web"
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env bash
# 金值 Flutter web 版本化部署。
# 产物须已在 build/web(先 flutter build web)。本脚本负责:打包 → scp → 远端解到
# 带版本号的 rev 目录 → 原子切换 cur 软链。旧 rev 全部保留,便于随时回滚。
#
# 用法:tool/deploy_web.sh <rev_id>
# rev_id 版本标识(CI 传 run_number;本地传时间戳)
#
# 连接参数(环境变量覆盖;CI 由 secrets 注入):
# DEPLOY_HOST / DEPLOY_USER / DEPLOY_PORT / WORKPATH
set -euo pipefail
REV="${1:?用法: tool/deploy_web.sh <rev_id>}"
DEPLOY_HOST="${DEPLOY_HOST:-47.114.117.126}"
DEPLOY_USER="${DEPLOY_USER:-dev}"
DEPLOY_PORT="${DEPLOY_PORT:-59650}"
WORKPATH="${WORKPATH:-/opt/modules/front/jinzhi/flutter}"
SSH_OPTS="-o StrictHostKeyChecking=accept-new -p $DEPLOY_PORT"
SCP_OPTS="-o StrictHostKeyChecking=accept-new -P $DEPLOY_PORT" # scp 端口是大写 -P
BUILD_DIR="build/web"
PKG="jinzhi-web-$REV.tar.gz"
[ -d "$BUILD_DIR" ] || { echo "✗ 缺少 $BUILD_DIR,请先 flutter build web"; exit 1; }
echo "▶ 打包 $BUILD_DIR$PKG"
tar -C "$BUILD_DIR" -czf "$PKG" .
echo "▶ scp → $DEPLOY_USER@$DEPLOY_HOST:/tmp/$PKG"
scp $SCP_OPTS "$PKG" "$DEPLOY_USER@$DEPLOY_HOST:/tmp/$PKG"
echo "▶ 远端:解到 rev_${REV}、切 cur(旧 rev 全部保留)"
# shellcheck disable=SC2087
ssh $SSH_OPTS "$DEPLOY_USER@$DEPLOY_HOST" \
"REV='$REV' WORKPATH='$WORKPATH' PKG='$PKG' bash -s" <<'REMOTE'
set -euo pipefail
REVDIR="$WORKPATH/core/revs/rev_$REV"
mkdir -p "$REVDIR"
tar -C "$REVDIR" -xzf "/tmp/$PKG"
rm -f "/tmp/$PKG"
# 原子切换:-f 覆盖、-n 不跟随已存在的软链目录
ln -sfn "$REVDIR" "$WORKPATH/cur"
echo "OK: cur -> rev_$REV,现存版本:$(ls -1d "$WORKPATH"/core/revs/rev_* | sort -r | tr '\n' ' ')"
REMOTE
rm -f "$PKG"
echo "✅ 已部署 rev_$REV → https://jinzhi.h5.local/flutter/no-cache,刷新即新版)"