乐趣区

关于hexo:hexo配合github-action-自动构建多种形式

曾经应用 HEXO 失常构建 GitHub 页面

依据 github action 给 hexo 配置主动部署 github page

返回墨抒颖的集体网站查看污浊版

1. 为仓库设置拜访密钥

第一步学生成密钥,关上命令行并生成一组密钥

ssh-keygen -f github-deploy-key -C "HEXO CD"

<!– more –>

记得跳过明码啥的,这里连按三次回车就好

随后咱们会取得两个密钥文件,这两个等下会用到

2. 上传私钥

github 仓库地址 → Settings → Secrets → New secret

点击 new repository secret 新建仓库密钥

名字 HEXO_DEPLOY_PRI
内容 github-deploy-key文件内的所有内容

⚠不要轻易走漏你的私钥⚠

3. 上传公钥

这里要分清你的仓库 ->page 的模式,公钥被上传的仓库代表着要被部署的仓库,github 不反对同一个(部署)公钥上传至多个仓库

不同仓库

如果你的 hexo 代码和要部署的页面不在同一个仓库

比方你有一些临时不不便公开的内容,或者你是不想公开你的 Hexo 代码,只想将动态页面(文字,图片,网站主题所用的各个款式和脚本)部署到 github page 上其余的内容一律不蕴含

此时你须要将公钥上传到你要部署的仓库中去

名字 `HEXO_DEPLOY_PUB
内容 github-deploy-key.pub文件内的所有内容

记得勾选容许写入权限

雷同仓库

与上一步相似,只是上传到的仓库地址和你的代码仓库地址一样,不过你肯定要确定你有在配置中设置号正确的的分支

配置 github action

这里能够在 github 上点击 Action -> new workflow -> set up a workflow yourself轻易挑个模板将内容放进去,也能够在代码仓库中的 .github/workflow 增加一个 hexo-ci.yml 而后将以下内容放进该文件中。

记得把 blog_source_branch, username, username@email.address替换成你本人的

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@v1

      - 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 "<username>"
          git config --global user.email "<username@email.address>"
      - name: Install dependencies
        run: |
          npm i -g hexo-cli
          npm i
      - name: Deploy hexo
        run: |
          hexo clean && hexo generate && hexo deploy

而后提交本次更改即可

配置 Hexo deploy

关上代码仓库中的 _config.yml
将 git 存储库从 http 模式更改为 ssh 模式。
公布部署文件的的分支应该仓库配置的分支一样

deploy:
  type: git
  repo: git@github.com:moshuying/moshuying.github.io.git
  # example, https://github.com/hexojs/hexojs.github.io
  branch: master

你曾经实现了所有操作!推送一次看看成果吧。

参考和举荐

hexo 中运行 shader 和 threejs

hexo 配合 github action 主动构建(多种形式)

退出移动版