2020-04-07 Hexo 部署 GitHub 调整

img

前言

现状:我的网站原先是在GitHub上进行源码托管,使用Netlify进行自动化部署。

改变:

1. 使用GitHub进行托管源码
2. 使用GitHub Pages来进行代码展示
3. 使用https加密服务

总而言之,就是由Netlify自动化迁向GitHub全家桶实现。

思路:

创建2个GitHub仓库,一个私有仓库用来存储源码,一个用来GitHub Pages展示静态页。

使用GitHub自带的GitHub Actions 来实现自动化部署。

过程

创建仓库

  • 创建私有仓库为 ruicky_blog 存放hexo相关的源码

  • 创建公共仓库为 ruicky.github.io 用来展示GitHub Pages

配置 GitHub Actions

  • 本地生成秘钥

  • 在GitHub 的个人配置页 Setting —> SSH and GPG keys 添加刚刚生成的公钥,名称随意。

  • ruicky_blogSettings —> Secrets 里添加刚刚生成的私钥,名称为 ACTION_DEPLOY_KEY

  • ruicky_blog的仓库的 Actions 选型卡中新建 workflow,填写以下配置。

    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
     name: Deploy Blog

    on: [push] # 当有新push时运行

    jobs:
    build: # 一项叫做build的任务

    runs-on: ubuntu-latest # 在最新版的Ubuntu系统下运行

    steps:
    - name: Checkout # 将仓库内master分支的内容下载到工作目录
    uses: actions/[email protected] # 脚本来自 https://github.com/actions/checkout

    - name: Use Node.js 10.x # 配置Node环境
    uses: actions/[email protected] # 配置脚本来自 https://github.com/actions/setup-node
    with:
    node-version: "10.x"

    - name: Setup Hexo env
    env:
    ACTION_DEPLOY_KEY: ${{ secrets.ACTION_DEPLOY_KEY }}
    run: |
    # set up private key for deploy
    mkdir -p ~/.ssh/
    echo "$ACTION_DEPLOY_KEY" | tr -d '\r' > ~/.ssh/id_rsa # 配置秘钥
    chmod 600 ~/.ssh/id_rsa
    ssh-keyscan github.com >> ~/.ssh/known_hosts
    # set git infomation
    git config --global user.name 'ruicky' # 换成你自己的邮箱和名字
    git config --global user.email '[email protected]'
    # install dependencies
    npm i -g hexo-cli # 安装hexo
    npm i

    - name: Deploy
    run: |
    # publish
    hexo generate && hexo deploy # 执行部署程序
  • 配置 站点 _config.yml 中的 deploy
    1
    2
    3
    4
    deploy:
    - type: git
    repo:
    github: [email protected]:ruicky/ruicky.github.io.git

配置域名,启用https

ruicky.github.io 仓库中 找到 Settings ,配置该节点下的 GitHub Pages。将其中的 Custom domain修改为自己的域名,如: ruicky.me, 并勾选 Enforce HTTPS 即可。

写在最后

注意其中的两个仓库 ruickyruicky.github.io 是我自己的仓库,如果要操作的话,需要改为你自己的。
该文章面向有点基础的同学,非小白教程,如果有什么不明白的,可在下方留言。

参考链接

用GitHub Actions自动化发布Hexo网站到GitHub Pages

-------------------本文结束 感谢您的阅读-------------------
坚持原创技术分享,您的支持将鼓励我继续创作!