name: Build and Deploy mdBook on: push: branches: - main jobs: build-and-deploy: runs-on: docs-deployer steps: - name: Checkout repository uses: actions/checkout@v2 - name: Cache mdBook id: cache-mdbook uses: actions/cache@v3 with: path: ~/.local/bin/mdbook key: ${{ runner.os }}-mdbook-0.4.36 - name: Install mdBook if not cached # 只有在缓存未命中时才执行 if: steps.cache-mdbook.outputs.cache-hit != 'true' 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 - 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" find "$TARGET_DIR" -mindepth 1 -delete cp -r "$SOURCE_DIR"/. "$TARGET_DIR/" echo "✅ Deployment successful!"