本文最后更新于 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'为自己的
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形式
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.



