由于Travis CI开始收费,现在转为使用Github Actions来自动化部署Github Page,目前Github Actions对于Public仓库是免费的。Github Actions的官方文档可看:Github Actions Docs。
生成Github "Personal access tokens"
用于在hexo部署时向Github仓库推送消息。
跳转到Github以下页面:
Profile
> Settings
> Developer Settings
> Personal access tokens
点击Generate new token
创建一个token,可以把Expiration
调整为No expiration
,对于scopes
根据实际需要来调整。
生成token之后把它拷贝记录下来,因为它只会显示一次。
添加仓库Action secret
这是为了能在Action执行时以安全的方式获取先前生成的Personal access token
。
跳转到Github仓库以下页面:
Settings
> Secrets
> Actions
点击New repository secret
创建一个secret
名字使用PAGE_PUBLISH_TOKEN
,值使用上一步生成的Personal access token
。
安装hexo deployer git依赖
1 | npm install hexo-deployer-git --save |
修改hexo配置
1 | # file: _config.yml |
创建workflow
在仓库以下路径
./.github/workflows/
存放所有的workflow,每一个workflow独立一个yml文件。
在这里创建一个publish-github-page.yml
文件,内容如下:
1 | name: Publish Github Page |
说明
runs-on
指示deployment这个job运行的环境,这里是ubuntu-20.04
,注意最好别用ubuntu-latest
这样带latest的环境,可能会在启动环境时非常的慢。
steps
是一个数组,存放所有的动作,每个元素可以用name
来自定义名字。
其中uses
可以指示从某处执行一系列的actions,可以通过with
携带一系列参数。例如:
1 | uses: actions/checkout@v2 |
这里的actions/checkout指的是https://github.com/actions/checkout仓库,@v2指的是仓库中v2这个tag,这个action的作用是把仓库(这里指的就是Github page的仓库)checkout到工作空间中。