使用 GitHub Actions 将 Hugo 博客部署到 Cloudflare Pages

我之前使用 Cloudflare Pages 部署 Hugo 博客时,最开始考虑的是直接使用 Cloudflare Pages 的 Git 集成:把 GitHub 仓库连接到 Cloudflare,之后每次推送代码就自动构建。 这种方式很简单,但构建过程完全由 Cloudflare 控制。如果希望自己控制 Hugo 版本、主题子模块初始化、构建命令和部署时机,也可以把整个过程放到 GitHub Actions 中完成。 本文记录我现在采用的方案: push 到 master │ ▼ GitHub Actions │ ├── 拉取源码和 PaperMod 子模块 ├── 安装 Hugo Extended ├── 构建 public/ └── 使用 Wrangler 部署到 Cloudflare Pages 这套方案适合什么情况? 如果只是想实现“推送代码后自动发布”,Cloudflare Pages 自带的 Git 集成已经够用。 GitHub Actions 更适合下面这些情况: 希望固定 Hugo 版本,保证本地和 CI 构建结果一致; 需要在部署前加入测试、格式检查或链接检查; 希望自己控制哪些分支可以部署; 已经把 CI/CD 统一放在 GitHub Actions 中; 希望构建过程和 Cloudflare 解耦。 需要注意的是,不要同时开启 Cloudflare Pages 的 Git 自动部署和 GitHub Actions 部署。否则一次 push 可能触发两次构建和两次发布。 ...

2026-08-08 · 3 min · 588 words