前言
前面我们已经搭建并部署完我们的blog了,但是每次部署操作都很繁琐,有时可能只是改了个错别字,就需要重新run一遍命令,那么有没有什么办法能简化这个过程吗?今天的文章我们就来说下,如何自动化这个过程,这个自动化的过程一般称为CI/CD
Github Actions
GitHub Actions 是 GitHub 的持续集成服务。持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。
很多操作在不同项目里面是类似的,完全可以共享。GitHub 允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。
如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。
正文
创建私有仓库
首先创建一个私有仓库,用来存放我们的工程项目,也就是你的hexo工程。
将hexo工程push到远端(记得删除项目中所有的 .git文件夹)。
创建token
然后打开github网页,登录你的账号,进入setting页面。
拉到最下方,点击 Developer settings
创建Token
勾选全部的权限,名称随意。并点击「Generate token」完成生成。保存好这个令牌,它不会再次出现。
打开hexo项目的github仓库,进入token配置页面。
将上面步骤生成的token复制,并添加到此处
Tips: 不生成上面的key也是可以的,只要将你的ssh私钥,粘贴至上述token位置也是生效的,注意ssh不要设置密码。
配置 GitHub Action
在hexo项目中创建文件.github/workflows/hexoCI.yml,并复制下方代码,请仔细阅读注释,修改最后几行的提交设置。
这里我用的是node版本为 21.x ,(因为20.x会有部署失败的情况,不过后续新版本21.x已修复。)
1 | # 自动化名称 |
将项目中修改push到远端。
验证
修改或新增某一篇文章,push到github。等待actions结束,查看网站上对应的文本是否发生变化。