说实话不用每次都执行一大长串部署指令真的香啊!
准备Hexo网站
- 在本地建立一个Hexo站点,可以参考官方快速开始文档。
- 建立两个GitHub仓库,分别叫
blog
(私有的)和你的GitHub用户名.github.io
(共有的)。前者用来存储博客源文件,后者用于挂载GitHub Pages。
- 将本地的博客源文件推送到
blog
仓库。
准备秘钥
为了方便运行GitHub Actions时登录GitHub账号,我们使用SSH方式登录。
使用ssh-keygen生成一组公私秘钥对
1
| ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-actions-deploy
|
在Settings
->SSH and GPG keys
添加刚刚生成的公钥,名称随意。 在blog
仓库的Settings
->Secrets
里添加刚刚生成的私钥,名称为 ACTION_DEPLOY_KEY
。
配置Hexo的_config.yml
添加部署配置。
1 2 3 4 5 6
|
deploy: - type: git repo: git@github.com:bulabula.git branch: master
|
配置 GitHub Actions
在blog
仓库的Actions
选项卡下点击新建workflow
,编写如下配置。
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
| name: Deploy Blog
on: [push]
jobs: build:
runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Use Node.js 10.x uses: actions/setup-node@v1 with: node-version: "10.x" - name: Setup Hexo env env: ACTION_DEPLOY_KEY: ${{ secrets.ACTION_DEPLOY_KEY }} run: | # set up private key for deploy mkdir -p ~/.ssh/ echo "$ACTION_DEPLOY_KEY" | tr -d '\r' > ~/.ssh/id_rsa # 配置秘钥 chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts # set git infomation git config --global user.name 'bulabula' # 换成你自己的邮箱和名字 git config --global user.email 'bulabula@athorx.com' # install dependencies npm i -g hexo-cli # 安装hexo npm i - name: Deploy run: | # publish hexo generate && hexo deploy # 执行部署程序
|
参考
1
| https://juejin.im/post/6844903961435045902
|