Github Actions全自动博客部署
假如现在有两个仓库,一个是存放网页静态文件的github.io
仓库,为公有仓库;一个是存放博客源码的hexo
仓库,因为里面的配置涉及到私人的密码信息,因此设置为私有仓库。
那么现在博客部署分为两步:见使用Hexo,换电脑也能更新博客
当添加新文章或更改配置后,需要将源码push到私有仓库
博客编译三步曲将网页静态文件上传到
github.io
.1
2
3hexo cl
hexo g
hexo d
有没有什么方法能实现全自动的博客部署, 每次只需要push源码到私有仓库,hexo
会自动编译上传网页静态文件。
方法有很多,本文介绍一个Github
新推出的功能–Actions
.
首先介绍一下Github Actions
:作为一种CI/CD
工具(Continuous Integration/Continuous,持续集成/持续部署)它可以实现许多任务的自动化,能够进行测试,进行质量检查,然后部署。
这介绍有点官方,简而言之就是,当你将源代码push到Github之后,你可以自己定义一套操作流程。比如说你想让你的代码push上去之后在其他平台上看看会不会报错,那么你定义的流程就是首先将你上传的源码clone到本地(当然不是你的本地,类似于docker,都在云上),然后安装相关环境,再去执行你定义的操作。如果发现有什么错误信息,你好去修改你的源码。
拉回到本文的主题,我们想定义的一套流程是:当我push源码的时候,它会自动编译博客而不需要我再去执行那三步曲。
下面是具体步骤:
准备密钥
公钥+私钥
1 | ssh-keygen -t rsa -C "Github邮箱地址" |
公钥内容:~/.ssh/id_rsa.pub
私钥内容:~/.ssh/id_rsa
密钥设置
在
github
的Settings中,设置SSH keys为公钥内容,命名随意。在自己创建的私有仓库hexo的Settings中,设置Secrets,新增内容为私钥,命名为DEPLOY_KEY。
添加Actions配置文件
这一步就是定义当我们push源码后的操作:
在Actions中新增
workflow
,点击Actions,然后新建workflows,这时GitHub会自动生成一个main.yml文件。最后修改main.yml文件,用如下内容替换去配置文件,你只需要修改下
Git
的配置信息,然后点击Start commit
即可。
1 | # workflow name |
当我们每次push源码的时候,Github Actions
会自动执行上面的操作。
注意事项
当push博客的静态网站文件到GitHub时,一定是
master
分支,不然博客Pages上不会更新内容。修改你博客根目录下的_config.yml文件,将HTTP修改为SSH形式,内容如下(将yourname改为自己的):
1
2
3
4deploy:
type: git
repo: git@github.com:yourname/yourname.github.io.git
branch: master
原文作者: 贺同学
原文链接: http://clarkhedi.github.io/2020/11/19/github-actions-quan-zi-dong-bo-ke-bu-shu/
版权声明: 转载请注明出处(必须保留原文作者署名原文链接)