本篇是可选操作教程
获取ssh密钥
在第二篇博客( 【个人博客网站】从零开发博客网站(二))中,已经写过如何获取密钥,故这里不再赘述。
私钥为id_rsa
文件,公钥为id_rsa.pub
文件(如果是命名过密钥名,公私钥的文件名则为自己命名的名字
)
部署密钥
部署私钥
博客项目仓库 -> settings -> Secrets -> Actions
点击New repository secret
,Name填HEXO_DEPLOY_PRI
,Secret填私钥文件里的内容
部署公钥
不同仓库
如果你没新建仓库的话,请新建仓库(新建过了请忽略),然后上传公钥。
目的仓库(新建仓库) -> settings -> Deploy keys
点击add deploy key
,title填HEXO_DEPLOY_PUB
,key填公钥文件里的内容
,并给读写权限
相同仓库
如果你想部署到和博客项目相同的仓库,请新建一个分支,公钥上传和上一步一样。这里需要注意的是,这种方式必须公开仓库,如果仓库内有不能公开的内容,请使用前一种方式
配置Github Actions
在hexo的根目录,创建.github/workflows/hexo-cl.yml
,修改blog_source_branch
、'your username'
、'your useremail'
为自己的
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 CI
on: push: branches: - blog_source_branch
jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [14.x]
steps: - uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }}
- name: Configuration environment env: HEXO_DEPLOY_PRI: ${{secrets.HEXO_DEPLOY_PRI}} run: | mkdir -p ~/.ssh/ echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.name 'your username' git config --global user.email 'your useremail' - name: Install dependencies run: | npm i -g hexo-cli npm i - name: Deploy hexo run: | hexo clean && hexo generate && gulp && hexo deploy
|
配置Hexo deploy
打开_config.yml
,将Git仓库从https形式修改成ssh形式
1 2 3 4 5
| deploy: - type: git repository: git@github.com:MengNianxiaoyao/MengNianxiaoyao.github.io.git branch: master
|
推送
将代码推送后,GitHub Actions会自动完成构建