用GitHub Actions在GitHub Pages上自动发布Hugo个人网站
Contents
我这里是按照Jared.Tan在知乎上的文章折腾Hugo | GitHub Pages | Github Actions自动构建发布免费个人网站来实现的,在这里自己做一下整理。
1、创建仓库
- 创建源码仓库
example.github.io.source
,并设置为Private
。 - 创建网站仓库
example.github.io
2、绑定SSH Key
GitHub Actions在编译生成静态文件并通过Git Push到网站仓库example.github.io
时需要Git账户认证。
生成一对ssh key
1
$ ssh-keygen -t rsa -C "your_email@youremail.com"
在输入路径时我们自定义一个路径防止影响到原来的ssh key。
添加Public Key到
example.github.io
仓库按照生成ssh key的路径打开.ssh.pub文件并复制里面的内容,在
example.github.io
仓库Settings→Deploy keys在里面点击新增后粘贴,要注意勾选Allow write access。添加Private Key到
example.github.io.source
仓库按照生成ssh key的路径打开.ssh文件并复制里面的内容,在
example.github.io.source
仓库Settings→Secrets添加一个新的secret后粘贴,这里的名称一定要用
ACTIONS_DEPLOY_KEY
,在后面的Ation会用到。
3、将源码推送到仓库
这里我们用Hugo创建一个个人网站,在用hugo server
命令预览网站没有问题之后,使用git push
命令推送源码到example.github.io.source
仓库。
4、配置GitHub Actions
在example.github.io.source
仓库的Actions点击New workflow,然后按照要求修改下面的文件粘贴进去:
|
|
然后右上角提交commit就可以了。
出发之后我们每次出发之后的状态,点进去之后我们可以看到流水线日志,都是绿色对号就可以了。如果Actions运行有问题,我们会受到邮件提醒。
5、设置.gitignore
文件
在实际的使用中我们会用hugo
命令来测试生成网站,这样就会产生public文件夹,这个文件夹不需要上传到仓库中。我们在Git工作目录中创建.gitignore
文件,然后写入一下内容就可以忽略public文件夹。
|
|
小插曲
当时我主题是git clone
的,导致了我的主题文件夹没有传到GitHub上,所以用Action编译的时候一直有问题,之后删除主题文件夹里的.git文件夹解决了此问题。
参考
Author Xin Sun
LastMod 2020-04-10