最近有一个朋友找我,说她弄了一个 Hexo 博客,想做 GitHub Actions 自动部署,奈何不会弄,只好让我帮忙。
GitHub Actions
GitHub Actions 是 GitHub 推出的持续集成服务,最近不要钱了,用(白嫖)的人就多起来了。
代码
话不多说,直接上代码:
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
| name: "Hexo Blog Builder"
on: [push, pull_request]
jobs: build: name: "Hexo Blog Build" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 1 - uses: actions/setup-node@v1 with: node-version: '12' - name: Install Hexo run: npm install -g hexo - name: Install Dependencies run: npm install - name: Clean Previous Build run: rm -rf docs - name: Hexo Clean run: hexo clean - name: Generate New Build run: hexo generate - name: Move docs/ run: mv public docs - name: Publish run: | mkdir -p ~/.ssh/ echo "${{ secrets.KEY }}" > ~/.ssh/id_rsa.pub chmod 600 ~/.ssh/id_rsa.pub ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.name "Hexo Deploy Bot" git config --global user.email "nobody@nobody.nobody" git config --global core.quotepath false git add --all git commit -m "Hexo Blog Build" git push origin master
|
本 Action 需要你的 ssh 公钥,也就是 id_rsa.pub
存在项目设置中的 Secrets 内。
TL;DR
具体实现很简单,用 Hexo 自带生成器生成到 public
目录,把 public
目录改名为 docs
。最后 push
到项目里。
push
使用 SSH Key,实现免密码。
在 GitHub Pages 设置中,需要把 Source 改为 docs 目录。
后记
如果大家有什么改进的好方法,可以在下方评论!