适合不想注册 Travis CI,只用 GitHub 帐户就能解决问题的朋友(比如我

本文有 增强版 啦!不想让 Hexo 独占 GitHub Pages 的朋友快去看看(

目录

开始

GitHub

别跟我说还没 注册 GitHub

设置 Git,然后在 GitHub 上创建两个 repo。一个 Public repo 用作 GitHub Pages,一个 Private repo 用作存储 Hexo。

将 Private repo clone 到本地。

Hexo

安装 Hexo,创建一个新文件夹并 建站

安装 hexo-deployer-git

修改 _config.yml 内的以下部分,将 url 和 root 匹配 GitHub Pages 地址。repo 指向 Public repo,使用 SSH url,可在 repo 页面 Clone or download -> Use SSH 查看。

_config.yml

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://username.github.io
root: /

deploy:
  type: git
  repo: git@github.com:username/username.github.io.git
  branch: master

将文件夹内所有文件移至 Private repo 文件夹,git add * & git commit -m init & git push 提交上传。

GitHub Actions

在当前目录生成一个 ssh 密钥对。请勿在 repo 文件夹生成并上传到 GitHub

ssh-keygen -f ./hexo-deploy

在 Public repo settings 添加 Depoly keys,Title 为 HEXO_DEPLOY_PUB,Key 为 hexo-deploy.pub 文件内的内容,勾选 Allow write access。

在 Private repo settings 添加 Secrets。

Name Value
GIT_EMAIL 填写 Git 邮箱(执行 git config user.email 查看)
GIT_USER 填写 Git 用户名(执行 git config user.name 查看)
HEXO_DEPLOY_PRI 填写 hexo-deploy 文件内的内容

添加完毕后可以删除密钥文件。

在 Private repo 文件夹内创建 .github/workflows/actions.yml。(需要手动新建 .github 和 workflows 文件夹)

actions.yml

name: Deploy Hexo

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [12.x]

    steps:
      - uses: actions/checkout@v1

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}

      - name: Configuration environment
        env:
          HEXO_DEPLOY_PRI: ${{secrets.HEXO_DEPLOY_PRI}}
          GIT_USER: ${{secrets.GIT_USER}}
          GIT_EMAIL: ${{secrets.GIT_EMAIL}}
        run: |
          mkdir -p ~/.ssh/
          echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          ssh-keyscan github.com >> ~/.ssh/known_hosts
          git config --global user.name "$GIT_USER"
          git config --global user.email "$GIT_EMAIL"
      - name: Install dependencies
        run: |
          npm i -g hexo-cli
          npm i
      - name: Deploy hexo
        run: |
          hexo g -d

提交上传。

结束

是的,完工了。在此之后,每当 Private repo 产生了新的 commit,GitHub Actions 都会自动 deploy 到 Public repo,再由 GitHub Pages 生成页面,剩下要做的事就只有在本地或网页对 Private repo 提交新增或修改。

至于更换 NexT 主题、添加新文章或页面等就属于如何玩 Hexo 的事了,我就不讲了(

听说有人需要这个,就趁机把两个月前闲着没事搞的事情拿出来水一篇 blog

我都有 Typecho 了,还要啥 Hexo

Snipaste_2020-03-10_17-14-28.png

参考链接

标签: none

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

仅有一条评论

  1. 好文明。

添加新评论