透过 Github Action 自动部署 Hexo 博客

558 字
3 分钟
透过 Github Action 自动部署 Hexo 博客

嘛…结果兜兜转转还是回到 Action 来了…最近经历的事情真多啊,这里依然是我的私人小空间 ww
总而言之先把该有的内容写好!

步骤#

1. 创建仓库 Repo#

  1. 私人库 A,设置为 Private,这就是工程博客仓库
  2. 公开库 B,设置为 Public,用于 Github Pages 发布(你有 Github Pro 可以在 private 状态下发布)

2. 设置公私钥#

  1. 执行命令获得一对 ssh-key:

    Terminal window
    ssh-keygen -t rsa -b 4096 -C "hexo-deploy" -f hexo_deploy_key
  2. 填写全部默认 enter 就行

  3. 此时你的根目录应该拥有 hexo-deploy_key 以及 hexo-deploy_key.pub

  4. 设置公钥

    1. 进入 Github 公开库 B(通常为博客的 xxx.github.io),settings → Deploy keys → Add deploy key
    2. 填写 hexo_deploy_key.pub 中的内容(title 项随意)
    3. 记得勾选 Allow write access
  5. 设置私钥

    1. 进入 Github 私人库 A,settings → Secrets and variables → New repository secret
    2. 填写 hexo_deploy_key 的内容(Name 项随意)

3. 配置 Github Action#

  1. 创建文件 .github/workflows/deploy.yml(若文件夹缺失则创建补全)

  2. 填写以下内容:

    name: Hexo Deploy
    on:
    push:
    branches:
    - main # 或者是 master,取决于你的默认分支名
    jobs:
    build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout source
    uses: actions/checkout@v3
    with:
    # 如果你的主题是作为 git submodule 存在的,需要开启这个
    # 具体取决于你的主题文件夹内是否存在.git文件夹,推荐删掉.git后false掉,以免莫名其妙的特性
    submodules: false
    - name: Setup Node.js
    uses: actions/setup-node@v3
    with:
    node-version: "24" # Node版本,目前24是LTS
    cache: "npm"
    - name: Install dependencies
    run: npm install
    - name: Build Hexo
    run: npx hexo generate
    - name: Deploy to GitHub Pages
    uses: peaceiris/actions-gh-pages@v3
    with:
    deploy_key: ${{ secrets.HEXO_DEPLOY_PRI }} # 这里对应你在私有仓库设置的 Secret 名字
    external_repository: username/username.github.io # 修改为你接收静态页面的公有仓库: 用户名/仓库名
    publish_branch: main # 公开库B的branch,取决于你是main还是master
    publish_dir: ./public # 将./public文件夹推送过去,一般不用管
    commit_message: ${{ github.event.head_commit.message }}
    user_name: "github-actions[bot]"
    user_email: "github-actions[bot]@users.noreply.github.com"
  3. 接下来随便 hexo new 一个 Pages 什么的,用 git 推送过去就可以享受自动更新了!

后记#

结果也确实有段时间没碰博客了嘛……(其实很久很久…)
总而言之我回来诈尸一下,未来或许会有点 oc 内容呢?谁知道呢

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Profile Image of the Author
Shiying
“魔法,是为了笑容而存在的。”我一直都如此坚信着。
存活记录
你找到这里了吧, 今天我也还活着, 大概...对了,无奖竞猜: 我今天看完西方哲学史了吗?
最新动态
站点统计
文章
7
分类
3
标签
5
总字数
4,068
运行时长
0 天
最后活动
0 天前