Hexo 自动部署

对于静态博客来说,Hexo是一款很受欢迎的博客生成器。其拥有数百的主题和插件,方便我们部署和自定义博客内容。然而,很多生成器都有一个跟明显的缺点,当网站的文章越来越多时,生成所需要的时间也越来越久。如果电脑效能差的话,部署时间则会更加的久。

为了解决这个问题,采用自动化部署是一个绝佳的选择。现如今提供自动化部署的平台越来越多。像Travis CI,Github Actions。我们只需要把Hexo的目录推送到GitHub去,相关平台监测到对应的Repositories发佈变化,就会自动去执行编译,并把编译好的内容发布到博客Repositories去。

获取Coding Token

项目设置 --> 开发者选项 --> 项目令牌
Hexo 自动部署插图
权限要给全

获取Github Token

Personal settings --> Developer settings --> Personal access tokens
Hexo 自动部署插图1
权限给repo,public repo,token要存好,不然没了只能重新获取

创建Actions

建立一个私有仓库,上传Hexo源代码
在Hexo目录的仓库,点击Actions
Hexo 自动部署插图2
然后点击Set up a workflow yourself
Hexo 自动部署插图3
输入以下代码

name: 自动部署 Hexo

on:
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x]

    steps:
      - name: 开始运行
        uses: actions/[email protected]

      - name: 设置 Node.js ${{ matrix.node-version }}
        uses: actions/[email protected]
        with:
          node-version: ${{ matrix.node-version }}

      - name: 安装 Hexo CI
        run: |
          export TZ='Asia/Shanghai'
          npm install hexo-cli -g

      - name: 缓存
        uses: actions/[email protected]
        id: cache-dependencies
        with:
          path: node_modules
          key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}

      - name: 安装插件
        if: steps.cache-dependencies.outputs.cache-hit != 'true'
        run: |
          npm install

      - name: 部署博客
        run: |
          hexo clean && hexo g && hexo douban && gulp
          cd ./public
          git init
          git config user.name "${{secrets.GIT_NAME}}"
          git config user.email "${{secrets.GIT_EMAIL}}"
          git add .
          git commit -m "Update"
          git push --force --quiet "https://${{secrets.GH_TOKEN}}@${{secrets.GH_REF}}" master:master
          git push --force --quiet "https://${{secrets.CD_TOKEN}}@${{secrets.CD_REF}}" master:master

点击Start commit
Hexo 自动部署插图4

设置Secrets

为了保护重要的资料,需要把这些资料设置到Secrets里,然后通过$引用。
在Settings --> Secrets
Hexo 自动部署插图5
这里需要设置6个Secrets

名称 内容
CD_REF 你要提交到Coding的仓库地址
CD_TOKEN Coding的token,格式为 用户名:密匙
GH_REF 你要提交到Github的仓库地址
GH_TOKEN Github的token
GIT_EMAIL 你Git的邮箱
GIT_NAME 你Git的名字

运行

随便修改一个东西,比如提交一篇文章,就可以看到变化了

鸣谢

1.通过travis-ci或者GitHub Actions自动化部署GitHub Pages和Coding Pages
2.Github Actions 自动部署 Hexo 脚本

版权声明:
作者:啊不都
链接:https://www.oplog.cn/archives/21.html
来源:操作员日志
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>