说明
在Github上创建两个仓库,一个私库存放博客源码,一个用户名.github.io存放生成的public文件,使用VSCode编写markdown格式博文推送到私库即可自动部署到用户名.github.io。
演示:Sky's Blog
创建ssh密钥对
$ ssh-keygen -f github-deploy-key
- 打开 用户名.github.io 的仓库,点击 setting / deploy key ,然后点击 add new key,名称填写 HEXO_DEPLOY_PUB ,值填写上一步生成的公钥(.pub文件)里面的内容,然后勾选 allow write,提交。
- 打开私库,添加 setting / secrets / add new key,名称为 HEXO_DEPLOY_PRI,值为生成ssh密钥对之私钥内容,提交。
创建 github action workflow
在私库中点击 Actions,新建一个workflow。
name: HEXO CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x]
steps:
- uses: actions/checkout@v1
- 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 "设置用户名"
git config --global user.email "设置邮箱"
- name: Install dependencies
run: |
npm i -g hexo-cli
npm install hexo-deployer-git --save
npm i
- name: Generate static blog file
run: |
hexo generate
- name: Deploy to github page
run: |
hexo deploy
修改私库中部署地址
deploy:
type: git
repo: git@github.com:username/username.github.io.git
branch: master
绑定域名
在私库博客源文件source文件夹中新建一个CNAME的文件,内容为你要绑定的域名,然后在域名服务商处解析域名cname到username.github.io。
部署
在私库源文件source/_posts中添加md格式的博文,然后push,即可自动部署成功。