diff --git a/.gitea/workflows/build_and_deploy_docs.yml b/.gitea/workflows/build_and_deploy_docs.yml index 0975e85..93640ca 100644 --- a/.gitea/workflows/build_and_deploy_docs.yml +++ b/.gitea/workflows/build_and_deploy_docs.yml @@ -7,15 +7,13 @@ on: jobs: build-and-deploy: - # 依然使用标签,确保任务在正确的 Runner 上执行 runs-on: docs-deployer steps: - name: Checkout repository - # 注意:这一步仍然需要网络来访问 github.com uses: actions/checkout@v2 - - name: Install mdBook + - name: Cache mdBook id: cache-mdbook uses: actions/cache@v3 with: @@ -23,34 +21,29 @@ jobs: key: ${{ runner.os }}-mdbook-0.4.36 - name: Install mdBook if not cached + # 只有在缓存未命中时才执行 if: steps.cache-mdbook.outputs.cache-hit != 'true' - # 注意:这一步仍然需要网络来访问 github.com 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 chmod +x ~/.local/bin/mdbook - name: Build mdBook docs + # 使用缓存或刚刚安装的 mdbook 进行构建 run: ~/.local/bin/mdbook build - # --- 部署步骤已更新为使用 cp --- - name: Deploy to Gitea Pages Directory run: | - # 目标目录,这是我们挂载到容器内的路径 TARGET_DIR="/mnt/gitea-pages/dao-os/dao-os-docs" - # 构建产物的源目录 SOURCE_DIR="./book" - echo "🚀 Deploying to host via volume mount using 'cp'..." - - # 确保顶层目标目录存在 mkdir -p "$TARGET_DIR" - - # 1. 清理旧文件:删除目标目录下的所有内容,确保干净的部署环境 - # find ... -delete 比 rm -rf 更安全一些 find "$TARGET_DIR" -mindepth 1 -delete - - # 2. 复制新文件:将构建好的 book 目录下的所有内容,复制到目标目录 - # cp -r a/. b/ 的语法可以确保 book 目录的内容被直接复制到 TARGET_DIR cp -r "$SOURCE_DIR"/. "$TARGET_DIR/" - echo "✅ Deployment successful!"