用github action 让hexo体验++
起因
因为电脑机械硬盘不知道啥原因,有时候磁盘上某个文件的数据就坏掉了
然后 node_modules 或者某篇文章就GG了,虽然现在把那个机械换掉了
但是每次都要hexo deploy
好麻烦啊
于是打算搞个 github action 自动生成静态文件,我只要关注 source 还有 config 就好了
设计
我们需要把 配置,文章,hexo生成的静态文件隔离开来,显然直接把它们放在不同的分支就好了
新建三个分支:master(存放文章),config(存放配置,敏感配置放到secret中),website(存放生成的网站)
github action 的逻辑:
1 2 3 4 5 6 7 8 9
| 安装 hexo 环境
克隆文章分支,克隆配置分支,克隆主题
配置文件字符串替换(如果有敏感数据的话)
生成静态文件
submit
|
实现
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
| on: workflow_dispatch: push: branches: - master - config
jobs: build-and-deploy: runs-on: ubuntu-latest
steps: - name: Checkout uses: actions/checkout@v2 with: ref: config - name: Checkout uses: actions/checkout@v2 with: ref: master path: source - name: Checkout uses: actions/checkout@v2 with: ref: website path: public - uses: actions/setup-node@v2 with: node-version: '14' cache: 'npm' - run: npm install
- name: Deploy run: | npx hexo generate cd public git config --global user.name 'ccreater222' git config --global user.email '[email protected]' git add * git commit -am "Automated generation" git push origin website
|