LOADING

若你不会魔法,这可能会有些慢

Hexo自动部署

2023/7/17 Git Hexo

前几篇文章里我提到了我给博客弄了自动部署

有朋友问我是怎么做的,我就写一篇文章介绍一下吧

I.Github Actions

官方描述

GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。
GitHub Actions 不仅仅是 DevOps,还允许您在存储库中发生其他事件时运行工作流程。 例如,您可以运行工作流程,以便在有人在您的存储库中创建新问题时自动添加相应的标签。
GitHub 提供 Linux、Windows 和 macOS 虚拟机来运行工作流程,或者您可以在自己的数据中心或云基础架构中托管自己的自托管运行器。

介绍

利用 Github Actions ,根据博客源码,自动部署到另一个库中,

优点 缺点
Github原生 需要两个仓库
完全免费 速度慢
  1. 新建一个仓库,用来存放生成后的博客文件,建议使用用户名.github.io的后缀,这样Github Pages会自动生成页面
  2. 设置Deploy
    1. 安装 hexo-deployer-git 插件
      npm install hexo-deployer-git --save
      
    2. 修改配置文件,找到博客根目录下的_config.yml并修改
      deploy:
      type: git
      repo: <repository url> # 生成后文件的库的ssh地址
      branch: [branch] # 分支,默认为gh-pages,建议使用master
      message: [message] # 提交消息,可选
      
    3. 此步骤可略过 配置好后,Git连接Github账号,连接教程可看Git连接远程仓库,尝试提交一下
      hexo deploy # 或 hexo d
      
  3. 新建一个仓库,将博客源代码全部上传,上传方法可看Git连接远程仓库,如果有文章加密之类的东西,这个库可以设为私密
  4. 配置公钥和密钥
    1. 生成
      ssh-keygen -t rsa -C "Auto Deploy"
      
    2. C:\Users\User\.ssh路径下会有两个文件,私钥id_rsa,公钥id_rsa.pub
      1. 添加公钥到生成后文件的库,打开仓库的Settings->Deploy Keys->Add Deploy Key,name随意,但要记住,然后将id_rsa.pub里的内容粘贴进来
      2. 添加私钥到源文件库,打开仓库的Settings->Secrets and variablSes->Actions->New repository secret,name随意,但要记住,建议填HEXO_DEPLOY_KEY,将id_rsa里的内容粘贴进来
  5. 创建Workflow
    1. 来到源文件库,点击Actions->New workflow->set up a workflow yourself
       name: Deploy 
      
       on: [push]
      
       jobs:
         build:
      
           runs-on: ubuntu-latest
      
           steps:
           - name: Checkout
             uses: actions/checkout@v2
             with:
               ref: master # 源文件的分支
      
           - name: Setup Node
             uses: actions/setup-node@v1
             with:
               node-version: "18.16"
      
           - name: Setup Hexo
             env:
               ACTION_DEPLOY_KEY: ${{ secrets.HEXO_DEPLOY_KEY }} # secret.后面填你4.2步写的key的名字
             run: |
               mkdir -p ~/.ssh/
               echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa
               chmod 700 ~/.ssh
               chmod 600 ~/.ssh/id_rsa
               ssh-keyscan github.com >> ~/.ssh/known_hosts
               git config --global user.email "你的邮箱"
               git config --global user.name "你的用户名"
               npm install hexo-cli -g
               npm install
      
           - name: Deploy
             run: |
               hexo clean
               hexo deploy
      

II.vercel

利用vercel自动部署

登录你的Github账号,新建项目,引用源文件的库,vercel会自动识别Hexo,自动就配置好了

III.Netlify

登录你的Github账号,新建项目,引用源文件的库,其他按照默认配置就行了