【个人博客网站】从零开始搭建博客网站(四):使用GitHub Actions自动构建博客

本文最后更新于 3 年前,文中所描述的信息可能已发生改变。

本篇是可选操作教程

获取ssh密钥

在第二篇博客【个人博客网站】从零开发博客网站(二)中,已经写过如何获取密钥,故这里不再赘述。

私钥为id_rsa文件,公钥为id_rsa.pub文件(如果是命名过密钥名,公私钥的文件名则为自己命名的名字)

部署密钥

部署私钥

博客项目仓库 -> settings -> Secrets -> Actions

点击New repository secret,Name填HEXO_DEPLOY_PRI,Secret填私钥文件里的内容

部署公钥

不同仓库

如果你没新建仓库的话,请新建仓库(新建过了请忽略),然后上传公钥。

目的仓库(新建仓库) -> settings -> Deploy keys

点击add deploy key,title填HEXO_DEPLOY_PUB,key填公钥文件里的内容,并给读写权限

相同仓库

如果你想部署到和博客项目相同的仓库,请新建一个分支,公钥上传和上一步一样。这里需要注意的是,这种方式必须公开仓库,如果仓库内有不能公开的内容,请使用前一种方式

配置Github Actions

在hexo的根目录,创建.github/workflows/hexo-cl.yml,修改blog_source_branch'your username''your useremail'为自己的

hexo-cl.yml
yml
name: HEXO CI

on:
  push:
    branches:
    - blog_source_branch

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14.x]

    steps:
      - uses: actions/checkout@v2

      - 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}}
        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 'your username'
          git config --global user.email 'your useremail'
      - name: Install dependencies
        run: |
          npm i -g hexo-cli
          npm i
      - name: Deploy hexo
        run: |
          hexo clean && hexo generate && gulp && hexo deploy

配置Hexo deploy

打开_config.yml,将Git仓库从https形式修改成ssh形式

_config.yml
yml
deploy:
- type: git
  repository: git@github.com:MengNianxiaoyao/MengNianxiaoyao.github.io.git
  #example, https://github.com/MengNianxiaoyao/MengNianxiaoyao.github.io.git
  branch: master

推送

将代码推送后,GitHub Actions会自动完成构建


Q.E.D.
【个人博客网站】博客美化(十一):修改全局弹窗样式
小米路由器4A千兆版刷机openwrt(含刷回官方)