使用 GitHub Actions 持续集成 Hexo 博客并发布
之前使用 Travis CI 实现了自动生成并发布 Hexo 博客,今天发现 GitHub 集成了类似的玩法,并且功能和扩展性都要好很多。本文简单修改了 GH Pages deploy,可以选择 repo 和 branch,并实现了对Hexo更好的兼容,解决了更新时间的问题。
准备工作
目前 GitHub Actions 仍在公测阶段,需要自行申请资格。
生成一个新的 token,勾选 repo 权限,然后把 token value 存储到 GitHub repo 的 Settings/Secrets 中,命名为 REPO_TOKEN。
添加 GitHub Actions 配置文件
在项目根目录添加.github/workflows/hexo.yml,按照下面的参考配置填写。
name: Hexo CI
on:
push:
branches:
- master
jobs:
generate-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
with:
submodules: true
- name: Build node
uses: actions/setup-node@master
with:
node-version: 11.x
- name: Build and Generate
run: |
export TZ='Asia/Shanghai'
git ls-files -z | while read -d '' path; do
touch -d "$(git log -1 --format="@%ct" "$path")" "$path";
done
npm install && npm install hexo-cli -g && hexo generate
- name: Deploy
uses: Editst/GitHub-Pages-deploy@master
env:
BUILD_DIR: public
REPO: YOUR_GITHUB_ID/YOUR_GITHUB_ID.github.io
TARGET_BRANCH: master
EMAIL: email@example.com
GH_TOKEN: ${{ secrets.REPO_TOKEN }}上传至 GitHub
上传后 GitHub 检测到文件夹 .github/workflows 中的 .yml 文件会自动开始执行,可以到 Actions 中查看相关的输出。祝一次成功。