使用Github Action实现全自动部署
本文内容参考自akilar, 建议前往原文阅览更详细的教程。
GitHub Actions 简介
在 GitHub Actions 的仓库中自动化、自定义和执行软件开发工作流程。 您可以发现、创建和共享操作以执行您喜欢的任何作业(包括 CI/CD),并将操作合并到完全自定义的工作流程中。
hexo clean hexo g -d
每次写文后部署Hexo都需要运行这几个指令,文章少还好,文章多起来之后,编译的时间也会随之增加。通过GitHub Action,就可以省略自己输指令部署,将改动推送到远程仓库后,其他的任务交给CI就好。
所需常量声明
| 常量名 | 常量释义 |
|---|---|
| [Blogroot] | 本地存放博客源码的文件夹路径 |
| [SourceRepo] | 存放博客源码的私有仓库名 |
| [SiteBlogRepo] | 存放编译好的博客页面的公有仓库名 Site 指站点,教程中会替换成 Github、Gitee、Coding |
| [SiteUsername] | 用户名 Site 指站点,教程中会替换成 Github、Gitee、Coding |
| [SiteToken] | 申请到的令牌码 Site 指站点,教程中会替换成 Github、Gitee、Coding |
| [GithubEmail] | 与 github 绑定的主邮箱,建议使用 Gmail |
| [TokenUser] | Coding 配置特有的令牌用户名 |
GitHub Action 快速开始
获取Token
为了确保交由 Github Action 来持续部署时,Github Action 具备足够的权限来进行 hexo deploy 操作,需要先获取 Token,博主分别在 Github、Coding 处部署了静态页面,所以也就需要获取这两处的 Token。
访问 Github-> 头像(右上角)->Settings->Developer Settings->Personal access tokens->
,名称随意起,但必须勾选repo项。



Token只会显示一次,之后无法查看,请务必记下来,若丢失则只能重新生成Token码重新配置。
访问 Coding-> 头像(右上角)-> 个人账户设置 -> 访问令牌 -> 新建令牌。



Coding还需要配置**令牌用户名[TokenUser]**,同GitHub一样,Token码只会出现一次。
创建存放源码的私有仓库
我们需要创建一个私有仓库[SourceRepo]用来存放Hexo博客源码,创建完成后,需要把源码push到仓库中。首先获取远程仓库地址,此处虽然SSH和HTTPS均可。SSH在绑定过sshkey的设备上无需再输入密码,HTTPS则需要输入密码,但是SSH偶尔会遇到端口占用的情况。请自主选择。
之所以是私有仓库,是因为配置中会写有Token,别人拿到Token可以随意操作你的github仓库内容。
配置deploy项
打开站点配置文件_config.yml,找到deploy配置项,使用之前生成的Token和各个站点仓库推送地址。
1 | deploy: |
配置GitHub Action
在Hexo根目录新建 .github 文件夹,注意前面有个.的。然后在.github内新建workflows文件夹,在workflows文件夹内新建autodeploy.yml,在此yml文件内输入
1 | # 当有改动推送到master分支时,启动Action |
重新设置远程仓库和分支
添加屏蔽项
能够使用指令进行安装的内容不包括在需要提交的源码内,
这样可以显著减少需要提交的文件量和加快提交速度。
打开 [Blogroot]/.gitignore, 输入以下内容:
1 | .DS_Store |
注意:如果不是butterfly主题,最后一行内容需要替换为当前使用的主题
提交源码到私有仓库[SourceRepo]
在博客根目录下启动终端,使用git指令重设仓库地址。这样在新建仓库,我们仍旧可以保留珍贵的 commit history,便于版本回滚。
1 | git remote rm origin # 删除原有仓库链接 |
查看部署情况
打开私有仓库,找到Actions
