Github Actions自动部署Hexo个人博客到Github Pages仓库

版权申明:本文为原创文章,转载请注明原文出处

原文链接:http://blog.pp6f.com/2022/02/17/Github/Github_Actions_Hexo/

通过Github Action创建workflow,当Hexo博客源码仓库 有文章或代码提交时触发workflow来执行Hexo生成静态网页并push推送到Github Pages的仓库!


索引

前言


  • 创建Github仓库用于存放Hexo源代码。 以下称为:Hexo源码仓库
  • 创建Github Pages仓库用于存放Hexo生成的静态网页。以下称为:Pages页面仓库
  • 创建推送到静态网页仓库的SSH密钥
  • Hexo源码仓库创建Action

创建两个Github仓库

创建Hexo源码仓库

  1. 打开Github登录你的账号 - 点击右上角的+加号 - 点击New repository
  2. Repository name 输入仓库名 这里自定义填
  3. 勾选Private私有仓库 这里只是存放源码不需要公开
  4. 勾选Add a README file添加一个自述文件
  5. 最后点击Create repository创建仓库
  6. 创建好后 将Hexo生成的博客源码文件pushHexo源码仓库里 包括node_modules文件夹下的所有内容

创建Pages页面仓库

  1. 打开Github登录你的账号 - 点击右上角的+加号 - 点击New repository
  2. Repository name 输入xxx.github.io xxx自定义字符
  3. 勾选Public公开仓库 因为是Pages页面仓库 所以必须要选Public公开仓库
  4. 勾选Add a README file添加一个自述文件
  5. 最后点击Create repository创建仓库
  6. 创建成功后 需要配置下Github Pages 点击 Settings - Pages - 选择一个分支 - Save
  7. 出现以下提示表示你的Pages可以访问了

    Your site is published at https://xxx.github.io/

  • 如果需要填自己的域名 可以在下面的Custom domain里面填写 修改后不要忘记到域名商修改解析地址到xxx.github.io

创建SSH密钥

这里创建的SSH密钥是留给 Hexo源码仓库触发workflow执行action运行hexo生成静态网页,push推送到pages页面仓库时用的

创建SSH密钥

  1. 任意位置打开命令行工具
  2. 输入以下命令创建一个SSH密钥 ssh-keygen -t rsa -C "youremail@example.com" -f ~/.ssh/xxx_rsa
    Git bash
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $ ssh-keygen -t rsa -C "youremail@example.com" -f ~/.ssh/xxx_rsa
    Generating public/private rsa key pair.
    Enter passphrase (empty for no passphrase): //这里输入回车
    Enter same passphrase again: //这里输入回车
    Your identification has been saved in /c/Users/xxx/.ssh/xxx_rsa
    Your public key has been saved in /c/Users/xxx/.ssh/xxx_rsa.pub
    The key fingerprint is:
    SHA256:t0Q2AznSFmNe1GqgByJ61Z39Nswuwpu5/jQF12lUTc4 1@1
    The key's randomart image is:
    +---[RSA 3072]----+
    | o..o.+=+o..o+|
    | . . =oS+ o.+.|
    | . . =**o.+ E|
    | .o.=O. |
    | .B.o+.. |
    | o.o. |
    | =+. |
    | +. . |
    | .oo. |
    +----[SHA256]-----+
  3. 会创建2个文件xxx_rsa(私钥),xxx_rsa.pub(公钥)

配置公钥到Pages页面仓库

  1. 进入Pages页面仓库
  2. Settings - Deploy keys - 点击Add deploy key
  3. Title 填写自定义标题
    Key 填写刚刚生成的xxx_rsa.pub(公钥) 用记事本打开复制里面的内容 粘贴到Key
  4. 勾选Allow write access 允许写入权限 一定要勾选
  5. 点击Add key

配置Hexo源码仓库私钥变量

  1. 进入Hexo源码仓库
  2. Settings - Secrets - Actions - 点击New repository secret
  3. Name 输入(PAGES_SSH_RSA),可以自定义 注意大小写 之后要用到
    Value 填写更改生成的xxx_rsa(私钥) 用记事本打开复制里面的内容 粘贴到Value
  4. 点击Add secret

配置Hexo源码的_config.yml

  • 找到deploy项 修改为你的Pages页面仓库的地址
    _config.yml
    1
    2
    3
    4
    deploy:
    type: git
    repo: git@github.com:xxx/xxx.github.io.git
    branch: main

创建Action

现在我们可以开始创建Action 详细可以参考 Github Actions的认识与使用

  1. 进入Hexo源码仓库 - 点击Actions - 点击set up a workflow yourself
  2. .github/workflows目录下创建一个后缀为.yml格式的文件,文件名可以自定义。
  3. 在编辑框输入以下代码
    main.yml
    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
    42
    name: Hexo Build and Deploy
    on:
    push:
    branches:
    - main
    jobs:
    build-and-deploy:
    runs-on: ubuntu-latest
    steps:

    - name: 1. git checkout...
    uses: actions/checkout@v2

    - name: 2. setup nodejs...
    uses: actions/setup-node@v2
    with:
    node-version: '16'

    - name: 3. install hexo...
    run: |
    npm install hexo-cli -g
    npm install --save hexo-deployer-git
    npm install

    - name: 4. config git
    env:
    ACTION_DEPLOY_KEY: ${{ secrets.PAGES_SSH_RSA }}

    run: |
    mkdir -p ~/.ssh/
    echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa
    ssh-keyscan github.com >> ~/.ssh/known_hosts
    git config --global user.email "yourgithubIDmail@xx.com"
    git config --global user.name "yourgithubID"

    - name: 5. hexo generate public files and Deploy hexo
    run: |
    hexo clean
    hexo g
    hexo deploy

  4. 替换
    PAGES_SSH_RSA 变量名为刚刚你设置的
    yourgithubIDmail@xx.com 你的Github账号邮箱
    yourgithubID 你的Github账号名
  5. 点击右上角的Start commit 在弹出的对话框点击Commit new file
    创建完成后 在进入Actions 会看到所有workflows中刚刚创建的workflow

结束

ok! 到这里基本就结束了。
以后每次添加 修改 删除文章时,只要push推送到Hexo源码仓库,就会自动执行actionworkflow生成静态网页并且自动部署到Pages页面仓库了!


Github Actions自动部署Hexo个人博客到Github Pages仓库

http://blog.pp6f.com/2022/02/17/Github/Github_Actions_Hexo/

作者

Bruce

发布于

2022-02-17

更新于

2023-03-10

许可协议

评论