|
|
@@ -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 分支根目录。"
|