前言
网上虽然有很多通过 GitHub Actions 自动部署 Hexo 的教程,但都有各种各样的问题。 主要问题还是 Workflow 脚本没有写正确,比如插件部分。
建议
将仓库设置为私有仓库
步骤
1、生成密钥对 (这个也不会的话,方法自行 Google)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/GitHub-actions-deploy
|
然后会获得一个公钥和私钥。
2、在 GitHub Pages 所在的仓库中添加 “公钥”
找到仓库的 Settings
- Deploye keys
- Add deploy key
Title
填入:ACTION_DEPLOY_KEY
Key
填入:# 步骤1生成的密钥对中的公钥
勾上 Allow write access
3、在存放 Hexo 源文件的仓库中添加 “私钥”
PS: 跟步骤 2 中的仓库可能是同一个,也可能不是同一个。根据自己的选型设置。
找到仓库的 Settings
- Secrets
- Add a new secret
Name
填入:HEXO_DEPLOY_PRIVATE_KEY
Value
填入:# 步骤1生成的密钥对中的私钥
4、修改一下 Actions 脚本
下文贴出的 Actions 的 Wordflows 脚本中,其中 2 个地方要改为自己的信息:
git config --global user.name '你Git的用户名' git config --global user.email '你Git的邮箱'
|
5、修改一下根目录的 _config.yml 文件
deploy: type: git repo: github: https://Github的用户名:Github的操作秘钥@github.com/用户名/用户名.github.io.git gitee: https://Gitee的用户名:Gitee的操作秘钥@gitee.com/用户名/用户名.git branch: master
|
例如:
deploy: type: git repo: github: https://beilinet:ghp_lhLAiSceYiyfWRR5tBD5*************kjQ@github.com/beilinet/beilinet.github.io.git gitee: https://beilinet:eab2be1b6fa81*************a06898@gitee.com/beilinet/beilinet.git branch: master
|
代码配置:
注意修改其中提到的几个地方
name: 自动部署 Hexo
on: push: branches: - master 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.HEXO_DEPLOY_PRIVATE_KEY }} 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的用户名' git config --global user.email '你Git的邮箱' - name: Deploy Hexo run: | hexo clean hexo generate hexo deploy
|
成功截图