使用Github Actions部署Hexo博客

使用Github Actions部署Hexo博客

本网站的自动部署方式从Travis CI更换为Github Actions。


在平平无奇的一天,本人再次发现网站停止了更新,之前写的文章都没刷新出来。本以为是构建又出了什么Bug,点开Travis CI看看日志,一看吓一跳。Travis CI友情提示道,帐号已经用光了所有credits,OSS开源项目将不能再构建,除非花钱。


本来想支持下Travis,毕竟也用了一年多服务。点开订阅计划,价格是每年700+刀。

不然,还是换个自动部署方案吧。


Vercel自动部署

网站的Waline插件用的就是Vercel托管,自然第一个想到的就是这个方案。打开Vercel,Import,选择Github Repository,啪的一下,很快呀,光速导入并开始部署了,还没反应过来,人家预览界面都出来了。

因为之前装Waline的时候,Vercel的帐号和Github认证都弄好了,所以节省了很多迁至步骤。

部署之后发现,原本的链接变成了xxxx.github.io.vercel.app,无法改成xxxx.github.io,也无法重定向到这个网页。毕竟github.io不是我的域名,我也改不了A Record。

不想要.vercel.app链接后缀的话,大致有三种做法:

  1. 买个新的域名。
  2. 尝试Vervel推送到Github Pages,反向操作。
  3. 寻找其他部署方案。

Github Actions自动部署

一番思索后,最终选择了方案三。方案一是因为维护域名麻烦不想掏钱,方案二是操作比较吊诡很难找例子抄,和@Jsky大佬讨论后,大佬告知Github Actions可以创建工作流并自动部署,遂学习之。

Github Actions官方文档:https://docs.github.com/en/actions

创建repo secret

访问仓库需要密钥,查阅了他人的方案,一般有两种方法,分别是SSH身份认证和personal access token。SSH密钥需要生成一对私钥和公钥,私钥仓库推送的时候,公钥仓库就会开始拉取、构建并推送。

personal access token是一种classic的做法。至少,Github是这么定义的。使用方法非常简单,添加一个新的token并取名即可。脚本会通过token名字读取到内容,保证两边一致。

网站最后采取了后一种方式。原因无他,使用SSH密钥的workflow都因为各种原因跑不通,最后可以跑通的workflow用的是personal access token。既然能跑了,那就别动它了吧!


创建workflow yml

在存放hexo代码项目根目录的.github/workflows文件夹下创建一个workflow yml,名字随意。这个脚本的目的是,在main分支发生推送时,自动执行更新构建操作并推送到gh-pages分支,以更新静态博客网页。

name: Hexo Deploy GitHub Pages
on:
  push:
    branches:
    # 推送到main分支后开始自动更新
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master

      - name: Build and Deploy
        uses: theme-keep/hexo-deploy-github-pages-action@master
        env:
          # GITHUB TOKEN
          PERSONAL_TOKEN: ${{ secrets.HEXO_KEEP_DEPLOY }}

          #部署到uynad.github.io仓库
          PUBLISH_REPOSITORY: UyNad/uynad.github.io

          # 部署到gh-pages分支
          BRANCH: gh-pages
          PUBLISH_DIR: ./public

学了一晚上,自己写的全都在报错,最后用了theme-keep下的actions-gh-pages@v3,部署成功了。正可谓是学别人走得快,自己学走得远,直接偷别人走得又快又远。


关注构建结果

在main分支进行推送后,即可在Actions页面查看构建结果了,展开可查看详细日志,Deployment successful终于出现在眼前。


希望起码一年内,不会再有更换部署方案的需求。


作者

UyNad

发布于

2023-02-11

更新于

2024-08-07

许可协议

CC BY-NC-SA 4.0

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×