使用GitHub Actions 持续集成部署Hexo
使用GitHub Actions 持续集成部署Hexo
Hexo 作为一个静态的博客框架,相比于wordpress,也是有其轻便,速度快的优点,但是毕竟是静态的,部署起来并没有那么方便,如果在本地的话每次更新,都需要hexo clean -d, 会很麻烦。Github Actions 早在2018年就发布了最初的版本, 作为一个方便的可以持续集成部署的工具,我们可以用它来部署hexo,让blog以后的更新维护更加方便快捷。
需要两个仓库,一个来放blog的源码, 一个放html, 如name.github.io
。
首先在git bash中运行:
生成密钥 yaml >folded1
| ssh-keygen -t rsa -f github-deploy-key
|
此时可以得到两个文件一个是 github-deploy-key
, 另一个是github-deploy-key.pub
, 首先复制github-deploy-key
的内容然后,到博客的源码仓库,打开Settings->Secrets->Actions
, 选择New Secrets
,Name 填HEXO_DEPLOY_PRI
,(这个后面文件会用到建议不做更改),然后打开博客页面文件所在的仓库,打开Settings->Deploy Key
, 选择Add deploy key
, 名字填HEXO_DEPLOY_PUB
, 把github-deploy-key.pub
的内容复制进去。
在博客源码的仓库中新建.github/workflows/deploy.yml
,
接下来就是配置Github Actions,根据注释修改内容, 填在deploy.yml
, 中:
Actions yaml >folded1 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 58 59 60 61 62
| name: Hexo deploy
on: push: branches: - main #当该分支的内容改变时会触发Actions,请根据实际情况更改成对应分支
env: GIT_USER: #用户名 GIT_EMAIL: #邮箱 DEPLOY_REPO: #用户名/name.github.io DEPLOY_BRANCH: #和上个分支相同
jobs: build: name: Build on node $ and $ runs-on: ubuntu-latest strategy: matrix: os: [ubuntu-latest] node_version: [16.x] # 使用最新的Ubuntu环境 steps:
- name: Checkout uses: actions/checkout@v3 #使用 actions/checkout@v3 版本为 node.16
- name: Checkout deploy repo uses: actions/checkout@v3 with: repository: $ ref: $ path: .deploy_git
- name: Use Node.js $ uses: actions/setup-node@v3 #使用 actions/setup-node@v3 版本为 node.16 with: node-version: 16
- name: Configuration environment env: HEXO_DEPLOY_PRI: $ run: | sudo timedatectl set-timezone "Asia/Shanghai" 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 install npm install hexo-cli -g # 部署hexo 环境 - name: Deploy hexo run: | hexo clean hexo g hexo d #部署 depoly
|
根据实际情况更改即可 ,推荐搭配GitHub的Cloud VSCode 使用效果更佳。