hexo虽然有git-deploy插件,
但是这一点都不优雅!也不方便, 你本地还是需要安装所有的依赖才行。
所以这里我们使用git action,
完成自动化部署,只需要提交commit之后,git自动就会完成部署博客
前提
- 已经创建
blog仓库存放Hexo项目
- 已经创建
your.github.io仓库存放静态页面
具体步骤
生成部署密钥
$ ssh-keygen -f github-deploy-key
|
一直回车。会在当前目录生成2个文件,
github-deploy-key和github-deploy-key.pub
配置部署密钥
复制 github-deploy-key 文件内容,在 blog
仓库 `Settings -> Secrets -> New repository secret
页面上添加。
在Name填入HEXO_DEPLOY_KEY
在Value填入github-deploy-key文件的内容

复制 github-deploy-key.pub 文件内容,在
your.github.io 仓库
Settings -> Deploy keys -> Add deploy key
页面上添加。
- 在
Title 输入框填写 HEXO_DEPLOY_PUB。
- 在
Key 输入框填写 github-deploy-key.pub
文件内容。
- 勾选
Allow write access 选项。

编写Gtihub Actions
在blog仓库根目录下创建.github/workflows/deploy.yml文件
在deply.yml中粘贴以下内容
name: Hexo Deploy
on: push: branches: - master
jobs: build: runs-on: ubuntu-18.04 if: github.event.repository.owner.id == github.event.sender.id
steps: - name: Checkout source uses: actions/checkout@v2 with: ref: master
- name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: '14.16'
- name: Setup Hexo env: ACTION_DEPLOY_KEY: ${{ secrets.HEXO_DEPLOY_KEY }} run: | mkdir -p ~/.ssh/ echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.email "your@email.com" git config --global user.name "your_name" npm install hexo-cli -g npm install # install pandoc curl -s -L https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-linux.tar.gz | tar xvzf - -C $RUNNER_TOOL_CACHE/
- name: Deploy run: | # add pandoc to PATH export PATH="$PATH:$RUNNER_TOOL_CACHE/pandoc-2.7.3/bin" hexo clean hexo deploy
|
这里因为博客用到pandoc,之前不安装测试的时候一直部署不成功,这里在安装依赖之后安装pandoc