前几篇文章里我提到了我给博客弄了自动部署
有朋友问我是怎么做的,我就写一篇文章介绍一下吧
I.Github Actions
官方描述
GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。
GitHub Actions 不仅仅是 DevOps,还允许您在存储库中发生其他事件时运行工作流程。 例如,您可以运行工作流程,以便在有人在您的存储库中创建新问题时自动添加相应的标签。
GitHub 提供 Linux、Windows 和 macOS 虚拟机来运行工作流程,或者您可以在自己的数据中心或云基础架构中托管自己的自托管运行器。
介绍
利用 Github Actions ,根据博客源码,自动部署到另一个库中,
优点 | 缺点 |
---|---|
Github原生 | 需要两个仓库 |
完全免费 | 速度慢 |
- 新建一个仓库,用来存放生成后的博客文件,建议使用
用户名.github.io
的后缀,这样Github Pages会自动生成页面 - 设置Deploy
- 安装 hexo-deployer-git 插件
npm install hexo-deployer-git --save
- 修改配置文件,找到博客根目录下的
_config.yml
并修改deploy: type: git repo: <repository url> # 生成后文件的库的ssh地址 branch: [branch] # 分支,默认为gh-pages,建议使用master message: [message] # 提交消息,可选
- 此步骤可略过 配置好后,Git连接Github账号,连接教程可看Git连接远程仓库,尝试提交一下
hexo deploy # 或 hexo d
- 安装 hexo-deployer-git 插件
- 新建一个仓库,将博客源代码全部上传,上传方法可看Git连接远程仓库,如果有文章加密之类的东西,这个库可以设为私密
- 配置公钥和密钥
- 生成
ssh-keygen -t rsa -C "Auto Deploy"
- 在
C:\Users\User\.ssh
路径下会有两个文件,私钥id_rsa
,公钥id_rsa.pub
- 添加公钥到
生成后文件的库
,打开仓库的Settings->Deploy Keys->Add Deploy Key,name随意,但要记住,然后将id_rsa.pub
里的内容粘贴进来 - 添加私钥到
源文件
库,打开仓库的Settings->Secrets and variablSes->Actions->New repository secret,name随意,但要记住,建议填HEXO_DEPLOY_KEY,将id_rsa
里的内容粘贴进来
- 添加公钥到
- 生成
- 创建Workflow
- 来到源文件库,点击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
- 来到源文件库,点击Actions->New workflow->set up a workflow yourself
II.vercel
利用vercel自动部署
登录你的Github账号,新建项目,引用源文件的库,vercel会自动识别Hexo,自动就配置好了
III.Netlify
登录你的Github账号,新建项目,引用源文件的库,其他按照默认配置就行了