peaceirisactions-gh-pages:把静态网站部署到 GitHub Pages,一行配置搞定

文章目录

  • peaceiris/actions-gh-pages:把静态网站部署到 GitHub Pages,一行配置搞定
    • 1、 解决什么问题
    • 2、 三种认证方式
    • 3、 能配置什么
    • 4、 适合谁用

peaceiris/actions-gh-pages:把静态网站部署到 GitHub Pages,一行配置搞定

这个项目在 GitHub 上拿到了 5.3K Star。

GitHub Actions 生态里有一个专门部署 GitHub Pages 的 action,叫 actions-gh-pages。作者是 peaceiris,一个日本开发者,还拿过 GitHub Action Hero 的称号。

1、 解决什么问题

用静态站点生成器(Hugo、Next.js、MkDocs、Gatsby 等)做完网站后,需要把构建产物部署到 GitHub Pages。自己写部署流程要处理分支切换、token 权限、历史记录管理等一系列问题。

这个 action 把这些打包成一步:指定构建产物目录,剩下的它全管。

2、 三种认证方式

支持 github_token、deploy_key、personal_token 三种方式。对于大部分用户,直接用 github_token 就行——runner 自动生成,不需要额外配置密钥。

-name:Deployuses:peaceiris/actions-gh-pages@v4with:github_token:${{secrets.GITHUB_TOKEN}}publish_dir:./public

如果是第一次部署,用 github_token 需要在仓库设置里手动选一次 gh-pages 分支。之后就不会有这个问题。

3、 能配置什么

覆盖了部署场景的大部分需求:自定义发布分支和目录、指定 CNAME、部署到外部仓库、强制 orphan 模式只保留最新提交、设置提交者和提交信息、保留已有文件。

比较实用的一个场景:把源代码放在私有仓库,构建产物部署到公共仓库的 GitHub Pages 上。通过 external_repository 参数就能实现。

4、 适合谁用

  • 在用 Hugo、MkDocs、Gatsby 这类 SSG 搭建博客或文档站的人
  • 项目托管在 GitHub,需要自动化 CI/CD 发布静态页面的开发者
  • 想把源码存私有仓库、但页面放在公开域名上的团队

/CD 发布静态页面的开发者

  • 想把源码存私有仓库、但页面放在公开域名上的团队