用 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