利用 github action 可以实现在线编辑博文,自动发布到博客的操作。
而在本地编写,也能省下 hexo clean && hexo g && hexo d && hexo a 这样的操作,只需要通过 vs code 点击一下 commitpush 即可
本文记录相关操作,使用基于 shoka 主题的 hexo ,其他主题请根据自己情况修改

# 建立发布仓库

注意!这里建立的不是用于博客展示的 public 仓库,而是包含整个 hexo 代码的工作仓库
因为这个仓库中包含了一些敏感的配置文件,务必注意建立 私有 仓库

# 在 github 建立私有仓库

  1. 点击右上角的 + 号,随后点击 New repository

  2. 编辑 Repository name ,勾选 Private ,最后点击 Create repository

  3. 创建完毕后应当跳转至如下页面,保留这个页面,红框中的内容后面用的到

# 关联本地仓库到远程仓库

建议先了解基础知识,可以浏览我之前写的 Git 基础教程

这里默认已经完成所有 hexo 的配置步骤,各插件的配置正常(valine,algonia 等),确定已经可以在本地直接将博文发布至 github pages ,且一切正常。
如果你也使用 shoka主题 ,可以先看我的基础篇系列

  1. 配置本地 hexo 根目录下的 .gitignore ,添加 node_modules / 和 public / 这两行(如果已经有了的话就不用加)

  2. 在本地 hexo 的根目录下执行如下命令:

orgin 后面的内容就是创建完私有仓库后,我标记的红框中的内容
注意更换为自己的仓库 ssh 链接

git remote add origin git@github.com:moehz/hexo-backend.git
  1. push 到远程仓库
git push -u origin master

# 配置 github action

# 配置密钥

  1. 点击 Settings --> Screts --> New repository secret

  2. 填写发布所需的私钥,命名为 HEXO_DEPLOY_PRIVATE_KEY

  3. 最后点击 Add secret , 页面自动跳转后应该可以看到自己添加的 key

# 配置 workflow

  1. 在仓库中点击 Actions --> set up workflow yourself 来创建 workflow
  2. 将 workflow 中的默认配置全部删除,更换为如下内容:

如果你用的是 shoka 主题,那么只需要修改全局账号以及邮箱
如果你用的不是 shoka 主题,还需要根据自己的情况修改其他配置

# workflow name
name: Hexo Blog CI
# master branch on push, auto run
on: 
  push:
    branches:
      - master
      
jobs:
  build: 
    runs-on: ubuntu-latest 
        
    steps:
    # check it to your workflow can access it
    # from: https://github.com/actions/checkout
    - name: Checkout Repository master branch
      uses: actions/checkout@master 
      
    # from: https://github.com/actions/setup-node  
    - name: Setup Node.js 12.x 
      uses: actions/setup-node@master
      with:
        node-version: "12.x"
    
    - name: Setup Hexo Dependencies
      run: |
        npm install hexo-cli -g
        npm install
        npm un hexo-renderer-marked --save
        npm i hexo-renderer-multi-markdown-it --save
        npm install hexo-autoprefixer --save
        npm install hexo-algoliasearch --save
        npm install hexo-symbols-count-time
        npm install hexo-feed --save-dev
        
    
    - name: Setup Deploy Private Key
      env:
        HEXO_DEPLOY_PRIVATE_KEY: $<!--swig0-->
      run: |
        mkdir -p ~/.ssh/
        echo "$HEXO_DEPLOY_PRIVATE_KEY" > ~/.ssh/id_rsa 
        chmod 600 ~/.ssh/id_rsa
        ssh-keyscan github.com >> ~/.ssh/known_hosts
    
    - name: Setup Git Infomation
      run: | 
        git config --global user.name 'xxx' 
        git config --global user.email 'xxx@xxx.com'
    - name: Deploy Hexo 
      run: |
        hexo clean
        hexo generate 
        hexo deploy
        hexo a
  1. 修改后,点击 Start commit --> Commit new file

  2. 配置完后会立即自动运行,然后可以看一下 Action 的运行情况,这里以我完成配置的仓库为例

    成功的话,红框中会显示绿色的勾,可以点击 Create main.yml 查看详细情况


这里可以看到 build 的状态,以及执行的时间等,继续点击 build


这里可以看到 build 时的全部日志,如果失败,可以在这里看一下哪里出了问题

# 使用

到这里就完成了全部配置,下面讲一些使用上的经验

# 网页编辑文章

跟本地一样,直接在库里的 source/_posts 目录下中新建或者编辑博文,最后 commit ,然后 action 就会自动运行帮你发布

# 本地使用

这里我使用的是 vscode ,你也可以用别的 IDE 方便操作。
只需要在软件里点击 commit , 然后 push 就行,后面 action 会帮你处理好一切

  1. commit and push

  1. 打开 github action ,可以看到已经在自动执行了
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

木 白 微信支付

微信支付

木 白 支付宝

支付宝

木 白 贝宝

贝宝