Просмотр исходного кода

调整自动化构建脚本并持久化

stoney недель назад: 2
Родитель
Сommit
afb70272a5
1 измененных файлов с 61 добавлено и 0 удалено
  1. 61 0
      user-help-docs/_deploy.sh

+ 61 - 0
user-help-docs/_deploy.sh

@@ -0,0 +1,61 @@
+#!/bin/bash
+
+# --- 配置区 ---
+SOURCE_BRANCH="master"
+RELEASE_BRANCH="release"
+# 此时脚本就在 mkdocs.yml 旁边,所以路径很简单
+BUILD_DIR="site"
+DEPLOY_DATE=$(date +'%Y-%m-%d %H:%M:%S')
+
+# --- 1. 自动定位 Git 根目录 ---
+# 无论脚本在哪,都先找到 Git 仓库的顶层
+GIT_ROOT=$(git rev-parse --show-toplevel)
+cd "$GIT_ROOT" || exit 1
+
+# --- 2. 环境检查 ---
+CURRENT_BRANCH=$(git symbolic-ref --short -q HEAD)
+if [ "$CURRENT_BRANCH" != "$SOURCE_BRANCH" ]; then
+    echo "❌ 错误: 必须在 $SOURCE_BRANCH 分支运行 (当前在 $CURRENT_BRANCH)。"
+    exit 1
+fi
+
+# --- 3. 构建阶段 ---
+echo "🏗️  正在构建..."
+# 回到脚本所在目录执行构建(或者直接指定 yml 路径)
+mkdocs build -f "user-help-docs/mkdocs.yml"
+
+if [ $? -ne 0 ]; then
+    echo "❌ 构建失败。"
+    exit 1
+fi
+
+# --- 4. 转移产物 ---
+echo "📦 准备发布内容..."
+TEMP_SITE_HOLDER=$(mktemp -d)
+# 注意:构建产物在 user-help-docs/site
+cp -r "user-help-docs/$BUILD_DIR"/* "$TEMP_SITE_HOLDER"/
+
+# --- 5. 切换分支并平铺文件 ---
+echo "🔁 切换到 $RELEASE_BRANCH..."
+git checkout "$RELEASE_BRANCH"
+
+# 清理 release 分支根目录(保持部署环境整洁)
+find . -maxdepth 1 ! -name '.git' ! -name '.' -exec rm -rf {} +
+
+# 将 site 里的内容直接平铺在 user-help/ 根目录下
+cp -r "$TEMP_SITE_HOLDER"/* .
+
+# --- 6. 提交与推送 ---
+git add .
+if git diff --staged --quiet; then
+    echo "ℹ️  内容无变化。"
+else
+    git commit -m "由master分支构建对应版本的静态文件 ($(date +'%Y-%m-%d %H:%M:%S'))"
+    git push origin "$RELEASE_BRANCH"
+fi
+
+# --- 7. 恢复 ---
+git checkout "$SOURCE_BRANCH"
+rm -rf "$TEMP_SITE_HOLDER"
+
+echo "✅ 部署完成!HTML 已平铺在 release 分支根目录。"