ci: add B9 branch deployment to S3 and CloudFront
Deploy B9 / deploy (push) Successful in 3m2s

This commit is contained in:
fucheng
2026-11-02 11:17:14 +08:00
parent cb2d415165
commit 650e8ef017
5 changed files with 184 additions and 13 deletions
+28 -11
View File
@@ -21,6 +21,7 @@ show_help() {
选项(可合并,如 -ir):
-i 排除 images 目录 (*images/*)
-r 上传完成后刷新 CloudFront 缓存
-y 跳过确认(用于 CI)
-h 显示此帮助
示例:
@@ -32,20 +33,22 @@ show_help() {
EOF
}
# 自动识别项目名称 (x8 / x9),依据脚本所在的项目根目录名
# CI 显式传入型号;本地按 Git 分支识别,非 Git 目录则回退到目录名。
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(basename "$(dirname "$SCRIPT_DIR")")"
PROJECT_NAME="$(echo "$PROJECT_ROOT" | grep -oE '^(x8|x9|b9)')"
if [ -z "$PROJECT_NAME" ]; then
echo "错误: 无法从路径 '$PROJECT_ROOT' 识别项目名称 (x8/x9/b9)"
exit 1
fi
PROJECT_BRANCH="$(git -C "$SCRIPT_DIR" symbolic-ref --quiet --short HEAD 2>/dev/null || true)"
PROJECT_NAME="${DEPLOY_PROJECT_NAME:-${PROJECT_BRANCH:-${PROJECT_ROOT%-controller}}}"
case "$PROJECT_NAME" in
main) PROJECT_NAME="x8" ;;
x8|x9|b9|bd9|bh9) ;;
*) echo "错误: 不支持的型号分支 '$PROJECT_NAME'"; exit 1 ;;
esac
# 解析参数
TARGET_ENV="prod"
EXCLUDE_IMAGES=false
RELOAD=false
ASSUME_YES=false
for arg in "$@"; do
case "$arg" in
@@ -70,6 +73,9 @@ for arg in "$@"; do
i)
EXCLUDE_IMAGES=true
;;
y)
ASSUME_YES=true
;;
r)
RELOAD=true
;;
@@ -121,10 +127,21 @@ echo "命令: ${CMD_ARGS[*]}"
echo "=========================================="
echo ""
read -r -p "确认执行部署? 输入 y 继续: " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
echo "已取消部署。"
exit 0
# 在项目根目录执行,避免 CI 的当前目录影响同步源。
cd "$SCRIPT_DIR/.."
for entry in i.html legacy/i.legacy.html modern/i.modern.html; do
if [ ! -s "dist/$entry" ]; then
echo "错误: 缺少构建产物 dist/$entry,请先完成构建。"
exit 1
fi
done
if [ "$ASSUME_YES" != true ]; then
read -r -p "确认执行部署? 输入 y 继续: " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
echo "已取消部署。"
exit 0
fi
fi
echo ""