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

目录

开始

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 国际许可协议 进行许可。

添加新评论