通过Github Actions实现Hugo自动部署
文章目录
【注意】最后更新于 March 18, 2021,文中内容可能已过时,请谨慎使用。
参考了几个帖子:
其实,学习hugo建站的第一步的时候,已经看到多篇涉及利用Github Actions实现Hugo自动部署的文章。
因为当时只想着要先解决温饱,所以没开展研究。
后面几天,站也建了,网上也推了,域名也绑了。
才有进一步学习的想法。
一、认识现状
几年前折腾hexo的时候就遇到过这个问题,
当时部署完成后,日常要写一篇日志的时候,还要输一大堆代码,太麻烦了。
没过几天,就懒的去更新了。
hugo的发日志现状也是:
1、Typora写日志,生成一篇MD文件,放到POST文件夹下。
2、git端敲代码
|
|
二、麻烦在哪里
个人感觉是多敲代码
而且移动端更新日志就比较麻烦
未安装Git的电脑上也难更新
三、Github Actions能做什么
由于自己非专业,理解起来有点困难,
想网上找找文章,听听大神们的科普
结果发现大部分的大神就是告诉你
怎么用Github Actions实现Hugo自动部署
然后,1,2,3,4.
而且发现不同的人,方法用的还不一样。@.@
最后,在
这篇文章里找到了答案:
大概意思就是一种思路,但有两种形式:
1、github上建两个仓库,A仓库存放整个hugo源码;B仓库为供于别人浏览用的X.github.io仓库,通过github actions来监测A仓库中任一文件的变化,触发github actions在云端生成更新后的静态站点并完成部署到B仓库,实现自动部署的功能。
2、github上建1个仓库,但生成2个分支,一个用于存放整个hugo源码;一个gh-pages分支存放静态文件,通过github actions来监测A分支中任一文件的变化,触发github actions在云端生成更新后的静态站点并完成部署到gh-pages分支,实现自动部署的功能。
也就是说通过以上部署,以后在PC端的源码文件夹下POST文件夹内写完一篇MD文件的日志后,Git执行
|
|
即可。其实也就少了两句代码。 另外,还可以在github网面端上传或上线写一篇MD文件保存即可实现自动部署。 同理,手机端也可实现发布新日志。
四、具体操作
1、github上建两个仓库,A仓库名随意,属性可以设为private。B仓库名必须为 “用户名.github.io”
2、设置Deploy keys与Secrets
在git端使用ssh-keygen命令来生成私钥与公钥。
|
|
3、在B仓库的setting里将公钥内容添加至Deploy keys,名称自定义,一定要勾选allow write access
4、在A仓库setting里将私钥内容添加至Secrets,命名为ACTIONS_DEPLOY_KEY,这个名字也可以自定义,但后面的脚本中要对应上。
5、在A仓库的Actions里,选择set up a workflow youself,新建一个main.yml文件。输入以下内容:
|
|
记得点保存。
6、将A仓库clone到本地
然后在本地A仓库中添加hugo源码,并放入自己要更新的日志、网站ico等。
7、重推到远端
|
|
推送完成后,不放心的可以去A仓库点击Actions,查看代码运行情况,一切正常后,应该很会快更新网页,可以去博客页看看更新是否完成。
文章作者 elion
上次更新 2021-03-18 , Thu