ci(文档部署): 优化文档部署工作流,使用cp替代rsync
Some checks failed
Build and Deploy mdBook / build-and-deploy (push) Failing after 44s
Some checks failed
Build and Deploy mdBook / build-and-deploy (push) Failing after 44s
- 移除不必要的apt缓存和rsync安装步骤 - 简化mdBook安装流程,保留缓存机制 - 使用cp命令替代rsync进行文件部署,提高可靠性
This commit is contained in:
@@ -7,53 +7,50 @@ on:
|
||||
|
||||
jobs:
|
||||
build-and-deploy:
|
||||
# 依然使用标签,确保任务在正确的 Runner 上执行
|
||||
runs-on: docs-deployer
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
# 注意:这一步仍然需要网络来访问 github.com
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# --- 缓存和安装 rsync ---
|
||||
- name: Cache apt packages
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
# 缓存 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
|
||||
|
||||
# --- 缓存和安装 mdBook ---
|
||||
- name: Cache mdBook
|
||||
- name: Install mdBook
|
||||
id: cache-mdbook
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
# 定义一个专门存放 mdbook 的路径
|
||||
path: ~/.local/bin/mdbook
|
||||
# 缓存的 key,基于操作系统和 mdbook 的版本号
|
||||
key: ${{ runner.os }}-mdbook-0.4.36 # 建议锁定一个具体版本
|
||||
key: ${{ runner.os }}-mdbook-0.4.36
|
||||
|
||||
- name: Install mdBook
|
||||
# 只有在上面的缓存步骤没有找到缓存时 (cache-hit is false),才执行此步骤
|
||||
- name: Install mdBook if not cached
|
||||
if: steps.cache-mdbook.outputs.cache-hit != 'true'
|
||||
# 注意:这一步仍然需要网络来访问 github.com
|
||||
run: |
|
||||
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
|
||||
|
||||
# --- 部署步骤已更新为使用 cp ---
|
||||
- name: Deploy to Gitea Pages Directory
|
||||
run: |
|
||||
# 目标目录,这是我们挂载到容器内的路径
|
||||
TARGET_DIR="/mnt/gitea-pages/dao-os/dao-os-docs"
|
||||
echo "🚀 Deploying to host via volume mount..."
|
||||
# 构建产物的源目录
|
||||
SOURCE_DIR="./book"
|
||||
|
||||
echo "🚀 Deploying to host via volume mount using 'cp'..."
|
||||
|
||||
# 确保顶层目标目录存在
|
||||
mkdir -p "$TARGET_DIR"
|
||||
rsync -a --delete ./book/ "$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!"
|
||||
|
||||
Reference in New Issue
Block a user