ci(文档部署): 优化文档构建和部署流程
Some checks failed
Build and Deploy mdBook / build-and-deploy (push) Has been cancelled

添加缓存步骤来加速依赖安装,包括 apt 包和 mdBook
锁定 mdBook 版本以确保构建一致性
简化部署脚本并移除冗余注释
This commit is contained in:
李东云
2025-06-10 02:27:15 +08:00
parent bd5b776368
commit 0d08f245d5

View File

@@ -7,36 +7,52 @@ 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
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install mdBook # --- 缓存和安装 rsync ---
uses: peaceiris/actions-mdbook@v1 - name: Cache apt packages
uses: actions/cache@v3
with: with:
mdbook-version: "latest" # 缓存 apt 的包存档
path: /var/cache/apt/archives
# 缓存的 key基于操作系统和日期。每天会生成一个新的缓存。
key: ${{ runner.os }}-apt-${{ hashFiles('**/lockfiles') }}-${{ steps.get-date.outputs.date }}
restore-keys: |
${{ runner.os }}-apt-${{ hashFiles('**/lockfiles') }}-
- name: Install rsync
run: apt-get update && apt-get install -y rsync
- name: Build mdBook # --- 缓存和安装 mdBook ---
run: mdbook build - name: Cache mdBook
id: cache-mdbook
uses: actions/cache@v3
with:
# 定义一个专门存放 mdbook 的路径
path: ~/.local/bin/mdbook
# 缓存的 key基于操作系统和 mdbook 的版本号
key: ${{ runner.os }}-mdbook-0.4.36 # 建议锁定一个具体版本
# --- 新增步骤在这里 --- - name: Install mdBook
- name: Install Dependencies # 只有在上面的缓存步骤没有找到缓存时 (cache-hit is false),才执行此步骤
if: steps.cache-mdbook.outputs.cache-hit != 'true'
run: | run: |
# 因为我们的基础镜像是 Debian (Bookworm),所以使用 apt-get 来安装 echo "mdBook cache not found, installing from release..."
# apt-get update - 更新软件包列表,这是一个好习惯 # 从 GitHub release 下载指定版本的 mdbook
# apt-get install -y rsync - 安装 rsync-y 参数会自动确认所有提示 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
echo "Installing rsync..." # 确保它有执行权限
apt-get update && apt-get install -y rsync chmod +x ~/.local/bin/mdbook
echo "rsync installed successfully."
# --- 构建与部署步骤保持不变 ---
- name: Build mdBook docs
run: ~/.local/bin/mdbook build
- 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"
echo "🚀 Deploying to host via volume mount..." echo "🚀 Deploying to host via volume mount..."
mkdir -p "$TARGET_DIR" mkdir -p "$TARGET_DIR"
rsync -a --delete ./book/ "$TARGET_DIR/" rsync -a --delete ./book/ "$TARGET_DIR/"