遇到任何问题,优先在本页面搜索,看看是否已经有该配置教程;
不懂得可以百度或者 Google;
还有弄不明白的可以在本站点留言,或添加站长 Wechat、QQ 等

前言

本文教程教你实现,如何将你的 Hexo 博客自动部署到多个平台

  • GitHub
  • GitLab
  • Coding
  • Gitee

优点:

  • 编写文章,推送到 GitHub 即可实现自动部署
  • 利用 GitHub 的私有仓库将博客源码直接保存在 GitHub

准备

  1. Hexo 博客源码的仓库,在 GitHub 上。
  2. ssh 密钥,参考文章:Windows 下利用 Git 生成 SSH KEY 并配置到 GitHub

步骤

  1. 为需要部署的平台添加密钥
  2. 修改 _config.yml 中的 deploy 配置
  3. 在 GitHub 上设置 Secrets
  4. 创建 GitHub Action

为需要部署的平台添加密钥

按照之前的教程,只要你之前成功将 Hexo 的博客部署到 GitHub 上,那你电脑在 ~/.ssh 目录下一定有以下三个文件:

  • id_rsa:私钥
  • id_rsa.pub:公钥
  • known_hosts:记录对所有用户都可信赖的远程主机的公钥

id_rsa.pub(公钥)添加到不同平台中即可,参考文章:Windows 下利用 Git 生成 SSH KEY 并配置到 GitHub

下面是不同平台添加的地址:

修改 _config.yml 中的 deploy 配置

请使用 ssh (即以 git@ 开头的 clone 链接)的连接方式,根据直接的实际地址填写。

1
2
3
4
5
6
7
8
deploy:
- type: git
repo:
github: git@github.com:Sitoi/Sitoi.github.io.git
coding: git@e.coding.net:Sitoi/Sitoi.git
gitee: git@gitee.com:sitoi/sitoi.git
gitlab: git@gitlab.com:Sitoi/sitoi.gitlab.io.git
branch: master

在 GitHub 上设置 Secrets

  1. 进入到你在 GitHub 上面的源码仓库

  2. 点击右上角的 Settings

    Settings

  3. 点击左侧的 Secrets

  4. 点击右上角的 New secret

    New secret

  5. Name 中输入 HEXO_DEPLOY_PRI,在 Value 中填入 id_rsa(私钥)的全部内容

    Add secret

创建 GitHub Action

  1. 点击项目上方的 Action 按钮

    Action

  2. 点击 set up a workflow yourself 创建 Workflow

    Workflow

  3. 修改 main.yaml 的内容

    Create Workflow

    根据实际情况修改成你自己的内容

    • Git 推送使用的用户名:git config –global user.name ‘sitoi’:
    • Git 推送使用的邮箱:git config –global user.email ‘133397418@qq.com
    • Hexo 的版本:npm i hexo@4.1.1 -g
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    name: Hexo CI

    on:
    push:
    branches:
    - butterfly

    jobs:
    butterfly-build:
    runs-on: ubuntu-latest

    strategy:
    matrix:
    node-version: [10.x]

    steps:
    - uses: actions/checkout@v1
    - name: Use Node.js 10.x
    uses: actions/setup-node@v1
    with:
    node-version: "10.x"
    - name: env prepare
    env:
    HEXO_DEPLOY_PRI: ${{ secrets.HEXO_DEPLOY_PRI }}
    run: |
    mkdir -p ~/.ssh/
    echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa
    ssh-keyscan github.com >> ~/.ssh/known_hosts
    ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
    ssh-keyscan e.coding.net >> ~/.ssh/known_hosts
    ssh-keyscan gitee.com >> ~/.ssh/known_hosts
    git config --global user.name 'sitoi'
    git config --global user.email '133397418@qq.com'
    npm i
    npm i hexo@4.1.1 -g
    - name: gen
    run: |
    hexo clean
    hexo generate
    hexo deploy
  4. 将你的源码推送到 GitHub 上,你的博客一会就会自动更新了。