因为Hexo三连太麻烦了,尤其是我还得切wsl,所以搞了下自动部署
部署好之后的流程是:
1 2 3 4 5
| graph TB 本地写Markdown文件 --> push到github上 push到github上 --> 由GithubAction部署至GithubPages 由GithubAction部署至GithubPages -- 成功 --> 网页部署完毕 由GithubAction部署至GithubPages -- 失败 --> 发邮件提醒
|
我就想试下流程图
Step 1.
因为 Hexo 的网页是由 Hexo 生成的,所以 GithubPages 上的内容不是写的markdown
为了只写 markdown 然后让 Github 代劳生成网页得新建一个仓库
假定为 user/Blog
好了
在本地 Hexo 的文件夹里先 Hexo clean
清除掉之前生成的文件
记得去把 themes
下的的主题的 .git
文件夹删掉(如果有的话)
然后
1 2 3 4 5 6
| git init git add . git commit -m "init" git remote add origin git@github.com:user/Blog.git git branch -M main git push -u origin main
|
把本地库放到 Github 上
Step 2.
为了让 user/Blog
能够在集成的时候访问 user/user.github.io
需要配置密钥对
用如下命令生成一对密钥
1
| ssh-keygen -t rsa -b 4096 -C "Hexo Deploy Key" -f github-key-blog -N ""
|
其中 github-key-blog
是私钥,另一个是公钥
在 Github里 user/Blog
的Setiing -> Secrets 里添加私钥
在 user/user.github.io
的Setting -> Depoly Key 中添加公钥,记得勾选 Allow write access
这样 user/Blog
就可以写入 GithubPages 的库里了
Step 3.
最后在 user/Blog
处添加一个 Action
内容如下
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
| name: Hexo Blog
on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout Repository master branch uses: actions/checkout@master - name: Setup Node.js 10.x uses: actions/setup-node@master with: node-version: "10.x" - name: Setup Hexo Dependencies run: | npm install hexo-cli -g npm install - name: Setup Deploy Private Key env: HEXO_DEPLOY_PRIVATE_KEY: ${{ secrets.私钥名称 }} run: | mkdir -p ~/.ssh/ echo "$HEXO_DEPLOY_PRIVATE_KEY" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts - name: Setup Git Infomation run: | git config --global user.name '名字' git config --global user.email '邮件' - name: Deploy Hexo run: | hexo clean hexo generate hexo deploy
|
保存之后再 user/Blog
里 push 就会自动更新了(当然挺慢的)