Hexo 通过 Github Actions 实现持续集成
Hexo 通过 Github Actions 实现持续集成
利用Github Actions[1]来实现博客的持续集成(CI)以及持续部署(CD)[2]。
一般部署好hexo博客后通过hexo g
将写好的Markdown文件转化为HTML文件然后再hexo d
把生成的public文件推送到Github仓库中。
但是,直接将生成的可以运行的实际代码(生产版)推送到 GitHub 仓库上,而不是博客源码(开发版),那这样便无法利用 GitHub 来对源码进行版本控制,也就不利于博客未来的维护、更新、开发,以及可能的开源开发。[3]
Netlify、 Travis CI 、 Github Actions
本次主要讲Github Actions 来进行hexo实现在线写作。
Github Actions
GitHub Actions 是 GitHub 于 2018 年 10 月推出的持续集成服务。
它的工作原理即为:当我们提前设置好需要自动化执行的任务(.github/workflows
下的文件)后,GitHub Actions 会监控当前仓库的某一个操作(如:push
),一旦有此操作,就自动化执行这些任务。
我们设置的任务即为 Action
,它存放在博客根目录的 .github/workflows
下,后缀为 .yml
。一个 Action 相当于是一个工作流 workflow,一个工作流则可以有多个任务 (job
),而每个任务又能分成几个步骤(step
)。任务、步骤会依次执行。
现在代入 Hexo。我们把源码提交到了仓库的一个分支上,GitHub Actions 监听到了该分支的提交操作(push
),便会开始执行我们在 .github/workflows
下放置的文件中的代码。我们需要 GitHub Actions 执行的任务即为我们在根目录下执行的命令(如hexo g
)。
注意:GitHub Actions 并没有我们的操作环境,我们得给它设置亦或是通过有关命令安装配置所需的环境。通过后面给出的任务文件内容可看出。
准备工作
首先我们得获取 GH_TOKEN 。
Personal access tokens (github.com)
选择框全选即可。
本地hexo文件上传github私有库
git init |
编写actions运行文件
/.github/workflows/deployment.yml
name: Blog CI/CD |
修改好名字和邮箱即可