From 0d08f245d547d091b5c1a78d57aab3458fe2267b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=B8=9C=E4=BA=91?= Date: Tue, 10 Jun 2025 02:27:15 +0800 Subject: [PATCH] =?UTF-8?q?ci(=E6=96=87=E6=A1=A3=E9=83=A8=E7=BD=B2):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=87=E6=A1=A3=E6=9E=84=E5=BB=BA=E5=92=8C?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加缓存步骤来加速依赖安装,包括 apt 包和 mdBook 锁定 mdBook 版本以确保构建一致性 简化部署脚本并移除冗余注释 --- .gitea/workflows/build_and_deploy_docs.yml | 48 ++++++++++++++-------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/build_and_deploy_docs.yml b/.gitea/workflows/build_and_deploy_docs.yml index 4b72052..902c1f4 100644 --- a/.gitea/workflows/build_and_deploy_docs.yml +++ b/.gitea/workflows/build_and_deploy_docs.yml @@ -7,36 +7,52 @@ on: jobs: build-and-deploy: - # 指定任务必须在我们有特殊标签的 Runner 上运行 runs-on: docs-deployer steps: - name: Checkout repository uses: actions/checkout@v3 - - name: Install mdBook - uses: peaceiris/actions-mdbook@v1 + # --- 缓存和安装 rsync --- + - name: Cache apt packages + uses: actions/cache@v3 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 - run: mdbook build + # --- 缓存和安装 mdBook --- + - 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 Dependencies + - name: Install mdBook + # 只有在上面的缓存步骤没有找到缓存时 (cache-hit is false),才执行此步骤 + if: steps.cache-mdbook.outputs.cache-hit != 'true' run: | - # 因为我们的基础镜像是 Debian (Bookworm),所以使用 apt-get 来安装 - # apt-get update - 更新软件包列表,这是一个好习惯 - # apt-get install -y rsync - 安装 rsync,-y 参数会自动确认所有提示 - echo "Installing rsync..." - apt-get update && apt-get install -y rsync - echo "rsync installed successfully." + echo "mdBook cache not found, installing from release..." + # 从 GitHub release 下载指定版本的 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 + run: ~/.local/bin/mdbook build - name: Deploy to Gitea Pages Directory run: | - # 这个步骤现在可以顺利执行了 TARGET_DIR="/mnt/gitea-pages/dao-os/dao-os-docs" - echo "🚀 Deploying to host via volume mount..." mkdir -p "$TARGET_DIR" rsync -a --delete ./book/ "$TARGET_DIR/"