之前使用 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
,按照下面的参考配置填写。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| 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 中查看相关的输出。祝一次成功。
参考