跳转至

用 GitHub Actions 自动部署 MkDocs 博客

本文介绍如何使用 GitHub Actions 自动化部署 MkDocs 博客,让每次推送代码后,站点都能自动构建并更新到 Cloudflare Pages。


🧰 前置条件

  • 已有一个 MkDocs 项目(例如 ai-blog)
  • 已部署到 Cloudflare Pages,并绑定自定义域名 littlec.tech
  • GitHub 仓库已启用 Actions 功能

⚙️ 创建 GitHub Actions 工作流

在项目根目录下新建文件 .github/workflows/deploy.yml

```yaml name: Deploy MkDocs to Cloudflare Pages

on: push: branches: - main

jobs: build: runs-on: ubuntu-latest

steps:
  - name: Checkout repository
    uses: actions/checkout@v4

  - name: Set up Python
    uses: actions/setup-python@v5
    with:
      python-version: '3.11'

  - name: Install dependencies
    run: |
      pip install mkdocs mkdocs-material

  - name: Build MkDocs site
    run: mkdocs build --clean

  - name: Upload artifact

🔑 配置 GitHub Secrets 在 GitHub 仓库 → Settings → Secrets and variables → Actions 中添加:

CLOUDFLARE_API_TOKEN:Cloudflare API Token(需要 Pages 写权限)

CLOUDFLARE_ACCOUNT_ID:你的 Cloudflare 账户 ID

🚀 工作流运行效果 每次推送到 main 分支时,GitHub Actions 会自动:

拉取代码

安装 MkDocs 依赖

构建静态站点到 site/

上传并部署到 Cloudflare Pages

部署完成后,你的博客会自动更新,无需手动操作。

✅ 总结与展望 通过 GitHub Actions,我们实现了 持续集成 + 自动部署,让博客更新更加高效。后续可以进一步优化:

添加测试步骤(如链接检查)

使用缓存加速依赖安装

在 Pull Request 中生成预览站点,方便审阅

这样,你的博客已经进入了自动化阶段,每次写完文章只需 git push,就能自动上线到 https://littlec.tech。 uses: actions/upload-pages-artifact@v3 with: path: site

deploy: runs-on: ubuntu-latest needs: build permissions: pages: write id-token: write

steps:
  - name: Deploy to Cloudflare Pages
    uses: cloudflare/pages-action@v1
    with:
      apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
      accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
      projectName: ai-blog
      directory: site