ci(文档部署): 优化文档构建和部署流程
All checks were successful
Build and Deploy mdBook / build-and-deploy (push) Successful in 4m2s
All checks were successful
Build and Deploy mdBook / build-and-deploy (push) Successful in 4m2s
- 添加缓存步骤减少重复下载 mdBook - 修复安装 mdBook 时的目录创建问题 - 简化部署脚本并移除冗余注释
This commit is contained in:
@@ -7,15 +7,13 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
# 依然使用标签,确保任务在正确的 Runner 上执行
|
|
||||||
runs-on: docs-deployer
|
runs-on: docs-deployer
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
# 注意:这一步仍然需要网络来访问 github.com
|
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Install mdBook
|
- name: Cache mdBook
|
||||||
id: cache-mdbook
|
id: cache-mdbook
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
@@ -23,34 +21,29 @@ jobs:
|
|||||||
key: ${{ runner.os }}-mdbook-0.4.36
|
key: ${{ runner.os }}-mdbook-0.4.36
|
||||||
|
|
||||||
- name: Install mdBook if not cached
|
- name: Install mdBook if not cached
|
||||||
|
# 只有在缓存未命中时才执行
|
||||||
if: steps.cache-mdbook.outputs.cache-hit != 'true'
|
if: steps.cache-mdbook.outputs.cache-hit != 'true'
|
||||||
# 注意:这一步仍然需要网络来访问 github.com
|
|
||||||
run: |
|
run: |
|
||||||
|
# --- ↓↓↓ 新增的修复步骤 ↓↓↓ ---
|
||||||
|
# 在解压前,确保目标目录存在。-p 参数会创建所有必要的父目录。
|
||||||
|
echo "Creating directory ~/.local/bin..."
|
||||||
|
mkdir -p ~/.local/bin
|
||||||
|
# --- ↑↑↑ 修复步骤结束 ↑↑↑ ---
|
||||||
|
|
||||||
|
echo "Downloading and extracting mdBook..."
|
||||||
curl -sL https://github.com/rust-lang/mdBook/releases/download/v0.4.36/mdbook-v0.4.36-x86_64-unknown-linux-gnu.tar.gz | tar xvz -C ~/.local/bin
|
curl -sL https://github.com/rust-lang/mdBook/releases/download/v0.4.36/mdbook-v0.4.36-x86_64-unknown-linux-gnu.tar.gz | tar xvz -C ~/.local/bin
|
||||||
chmod +x ~/.local/bin/mdbook
|
chmod +x ~/.local/bin/mdbook
|
||||||
|
|
||||||
- name: Build mdBook docs
|
- name: Build mdBook docs
|
||||||
|
# 使用缓存或刚刚安装的 mdbook 进行构建
|
||||||
run: ~/.local/bin/mdbook build
|
run: ~/.local/bin/mdbook build
|
||||||
|
|
||||||
# --- 部署步骤已更新为使用 cp ---
|
|
||||||
- name: Deploy to Gitea Pages Directory
|
- name: Deploy to Gitea Pages Directory
|
||||||
run: |
|
run: |
|
||||||
# 目标目录,这是我们挂载到容器内的路径
|
|
||||||
TARGET_DIR="/mnt/gitea-pages/dao-os/dao-os-docs"
|
TARGET_DIR="/mnt/gitea-pages/dao-os/dao-os-docs"
|
||||||
# 构建产物的源目录
|
|
||||||
SOURCE_DIR="./book"
|
SOURCE_DIR="./book"
|
||||||
|
|
||||||
echo "🚀 Deploying to host via volume mount using 'cp'..."
|
echo "🚀 Deploying to host via volume mount using 'cp'..."
|
||||||
|
|
||||||
# 确保顶层目标目录存在
|
|
||||||
mkdir -p "$TARGET_DIR"
|
mkdir -p "$TARGET_DIR"
|
||||||
|
|
||||||
# 1. 清理旧文件:删除目标目录下的所有内容,确保干净的部署环境
|
|
||||||
# find ... -delete 比 rm -rf 更安全一些
|
|
||||||
find "$TARGET_DIR" -mindepth 1 -delete
|
find "$TARGET_DIR" -mindepth 1 -delete
|
||||||
|
|
||||||
# 2. 复制新文件:将构建好的 book 目录下的所有内容,复制到目标目录
|
|
||||||
# cp -r a/. b/ 的语法可以确保 book 目录的内容被直接复制到 TARGET_DIR
|
|
||||||
cp -r "$SOURCE_DIR"/. "$TARGET_DIR/"
|
cp -r "$SOURCE_DIR"/. "$TARGET_DIR/"
|
||||||
|
|
||||||
echo "✅ Deployment successful!"
|
echo "✅ Deployment successful!"
|
||||||
|
|||||||
Reference in New Issue
Block a user