基本流程参照 https://github.com/marketplace/actions/hexo-action
Step 1. 生成 ssh key pair
首先,我们需要生成 ssh key pair。最好是专门为这个仓库生成一个 pair,因为后面需要上传私钥,如果是本机常用的 ssh key pair,会存在一定风险。
1 | ssh-keygen -t rsa -C "username@example.com" |
邮箱可以修改为自己的邮箱,询问保存 key 的文件路径时,随便写一个,避免覆盖原有的 key。
1 | ± ssh-keygen -t rsa -C "username@example.com" |
以输入 hexo 为例,在当前目录下得到 hexo,hexo.pub 两个文件,前者是私钥,后者是公钥。
将公钥填入 Settings > Deploy Keys。将私钥填入 Settings > Secrets,键名设为 DEPLOY_KEY。这样 GitHub Action 就可以利用 DEPLOY_KEY 将生成好的静态页面 push 到部署分支。
Step2: 配置 GitHub Action
创建.github/workflows/xxx.yml,用你认为的 workflow 名字命名。Hexo Action里面给出了详细的设置,我这里只放我自己的
1 | name: Hexo Deploy |
首先我把写作分支设在了 dev,所以触发条件是 dev branch 存在 push 操作。然后我们会检查 node_modules 的缓存,如果没有缓存就 npm install 并缓存。最后我们调用 sma11black/hexo-action,里面本质上就是帮你执行了 hexo deploy 的操作,这样编译好的静态页面就推到 master branch 了。
尝试过几次,删掉多余的 dependency 之后,GitHub Action 正常运作。

不足的地方在于调用别人的 action,可能有一些需要手动安装的依赖缺失。后续考虑研究一下 GitHub Action。