在使用Hexo框架,在修改或新建了文章后。都需要执行以下几个命令才能部署到服务器:
- hexo clean
- hexo generate
- hexo deploy
要我们更新文章后,只需要简单的push到远程仓库,服务器自动完成部署该多爽啊!github提供的Actions就能帮我们实现。
下面我们使用两个仓库来进行实验:
名称 |
功能 |
blog |
一个私有仓库用来存储源文件 |
tglingli.github.io |
一个公共仓库用来部署博客 |
生成ssh键值对
1
| ssh-keygen -t rsa -f github_deploy -N "" -C "github actions deploy ssh key"
|
指行以上命令后我们将得到两个文件“github_deploy.pub”和“github_deploy”分别对就ssh的公匙和私匙。公匙是需要上传到部署服务器上的,私匙是需要上传到源码仓库服务器上的。
为源码仓库添加ssh私匙

为部署仓库添加ssh公匙

在源码仓库中添加Actions
在源码仓库.github/workflows/
目录下添加一个Hexo_deploy.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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| name: Hexo deploy
on: push: branches: [main]
jobs: environment: name: Setup Nodejs runs-on: ubuntu-latest steps: - name: Setup Nodejs uses: actions/setup-node@v2 with: node-version: '16.x' - name: Nodejs version run: echo Nodejs version $(node -v) hexo_deploy: name: Hexo deploy runs-on: ubuntu-latest needs: - environment steps: - name: Generate ssh private key file env: ACTION_DEPLOY_KEY: ${{secrets.HEXO_DEPLOY_PRI}} run: | mkdir -p ~/.ssh/ echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - name: Config git author run: | git config --global user.name "tglingli_deploy" git config --global user.email "tglingli@foxmail.com" - name: Setup Hexo run: | npm install hexo npm list - name: Check envrionment run: | echo Nodejs version: $(node -v) echo Hexo version: npx hexo --version echo git config information: git config --global --list - name: Checkout source uses: actions/checkout@v2 with: ref: main fetch-depth: 0 - name: Deploy run: | npm install npx hexo clean npx hexo deploy
|
当向main
分支推送后运行效果如下
