概述
在上一篇博客搭建中,我使用了GitHub Actions实现了将博客自动部署发布至GitHub上,但是在使用过一段时间后,发现GitHub访问速度缓慢,特别是最近,如果不适用vpn的话可能访问不了GitHub,所以打算在原有的部署方案中,增加部署至Gitee上,这样国内访问速度便有了保证。
如果你没有看过上一篇内容,请点击这里
步骤
基本原理还是使用GitHub Actions,再部署到GitHub后,新增两个step:
- 同步代码至gitee
- 重新部署pages
第一步我所同步的是编译后的代码,保证仓库代码同步,由于Gitee没有自动更新pages,所以在仓库代码更新后,我们还需要对其进行更新。
初始化Gitee博客仓库
由于我们要将一份代码部署至两个不同网址下,vuepress的基础路径十分重要,路径不对会导致打包后的静态文件路径不对,在GitHub中,我的基础路径是:
// https://hahaxiaowai.github.io/
base: "/",
所以仓库名称非常重要,在Gitee上依然要保证这样的仓库命名规范:
// 在GitHub上仓库命名规范
yourname.github.io
// 在Gitee上仓库命名规范
yourname
创建时,可以顺便把GitHub仓库的代码拉下来,然后选择 服务>Gitee Pages 配置一下博客并启动,这里不详细展开。
增加配置
- 在Gitee中,点击右上角头像>设置>SSH公钥,同GitHub上一样,设置一个ssh key,这里推荐使用同一个key(BLOG).
- 在Gitee中,点击右上角头像>设置,进行第三方账号绑定,将微信绑定(我也是拒绝的,但是后面会用到,没有办法)。
- 在上一篇文章中,我们在源代码 Settings>Secrets 中设置了BlOG变量,这一次我们再增加GITEE变量,变量内容为Gitee的密码,设置好后,我们进入正题,设置Actions.
配置Actions
配置文件将省略上一篇文章的配置内容,只将结构留下
name: Automatic blog update # 该Action的名字
# on:何时触发该事件.
on:
...
# 工作流运行由一个或多个jobs组成,这些job可以按顺序或并行运行
jobs:
# 此工作流包含一个名为“build-deploy”的job。
build-deploy:
...
# steps表示将作为job一部分执行的一系列任务
steps:
- uses: actions/checkout@master # 切换分支到master
with:
fetch-depth: 2
- name: Use Node.js 12.x #使用nodejs 12.x版本
...
- name: install and build
...
- name: deploy #部署至GitHub
...
- name: Sync to Gitee # 同步到Gitee
uses: wearerequired/git-mirror-action@d5724af3876c8fdfdb59312c99df0d11b769ca8c
env:
# 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY
SSH_PRIVATE_KEY: ${{ secrets.BLOG }}
with:
# 注意替换为你的 GitHub 公开仓库地址
source-repo: git@github.com:hahaxiaowai/hahaxiaowai.github.io.git
# 注意替换为你的 Gitee 目标仓库地址
destination-repo: git@gitee.com:hahaxiaowai/hahaxiaowai.git
- name: deploy2 #部署到gitee
uses: yanglbme/gitee-pages-action@v1.3.2
with:
deploy_key: ${{ secrets.BLOG }} # key
gitee-username: hahaxiaowai
gitee-password: ${{ secrets.GITEE }}
gitee-repo: hahaxiaowai/hahaxiaowai #推送到该仓库中,地址格式为gitee名称/仓库名
branch: master #分支名
如果你想了解更多关于这个插件的信息,请点击这里
注意事项
第一次运行时,大概率是失败的,提示你要验证微信登录,如果你提前绑定了微信,应该是没问题的。
欢迎来到我的个人博客