前言
本文记录如何在写好文章后通过 GitHub Actions 自动使用 hexo deploy 将生成的站点发布到 GitHub Pages。
前提
- 已在
package.json中配置好build/deploy脚本(本仓库使用pnpm build/pnpm deploy)。 - 已安装
hexo-deployer-git(见package.json依赖)。 _config.yml中deploy字段已填写正确的repo(例如https://github.com/<user>/<repo>.git)和branch(通常为gh-pages)。
如果以上都就绪,下面按步骤配置 GH Actions:
-
在仓库中添加工作流文件
.github/workflows/deploy.yml(已示例加入仓库)。工作流主要流程:检出代码 -> 安装 Node 与 pnpm -> 安装依赖 -> 生成站点 -> 运行pnpm deploy。 -
我们的工作流示例要点:
- 使用
actions/checkout、actions/setup-node和pnpm/action-setup来准备环境。 - 使用
pnpm install --frozen-lockfile保持依赖一致性,然后pnpm build生成public。 - 为了让
hexo-deployer-git能推送到gh-pages,工作流中用git config将https://github.com/替换为带${{ secrets.GITHUB_TOKEN }}的 URL,这样hexo deploy使用 HTTPS 推送时会带上 token:
# 关键片段(完整文件位于 .github/workflows/deploy.yml) |
- 提交并推送工作流文件后,往主分支(
main/master)推送内容会触发自动构建与部署。提交示例命令:
git add .github/workflows/deploy.yml |
- 常见注意事项与排查
- 如果站点构建失败:检查
pnpm install输出的错误与node版本(工作流中可指定node-version)。 - 如果
hexo deploy推送失败:确认_config.yml中deploy.repo填写完整(包含.git)或使用相应的repoURL;查看 Actions 日志中git的真实 push URL(替换规则应已把 token 注入)。 - 如果你需要使用自定义 PAT(权限更宽的 token,例如跨仓库),可以把
secrets.GITHUB_TOKEN换为secrets.DEPLOY_TOKEN,并在仓库 Settings -> Secrets 中添加。
- 本仓库已完成的改动概览
- 添加工作流:
.github/workflows/deploy.yml,在构建后调用pnpm deploy并通过git config注入 token。
如果你希望我把文章补充为更详细的调试步骤(包含 Actions 日志示例、常见报错及解决办法),或把文章内容同步到 README.md,告诉我需要的深度,我来继续完善。
说些什么吧!