去中心化用 GitHub Actions 把 Hexo 博客源码备份到 Gitee 和 CODING
这是去中心化博客备份专题的第 3 篇。上一篇在这里。
互联网时代的“狡兔三窟”,叫作“去中心化”。
GitHub 封禁伊朗和俄罗斯开发者的私有账户,不能说明大厂不靠谱或者开源不靠谱,相反,说明了中心化不靠谱。即使 GitHub 那样的大厂,也会因为合规要求而封禁账号。如果开发者仅仅依赖 GitHub 托管源码,那还是落入了中心化的窠臼。
谷月姐不但给 博客 建立了好几个镜像,而且源码放在好几个不同的云盘和源码托管平台。就是要去中心化,免得一旦中美开战, GitHub 封禁中国开发者的账户,导致我的博客全军覆没。
我的 博客 源码在本地有一份,在 GitHub 有一份。接下来,谷月姐要把它备份到不同的云端。如果本地或 GitHub 出错,可以及时恢复。如果我的 GitHub 被封禁,还可以转移到其他的源码托管网站,或者从本地发布我的博客。
上一期,谷月姐介绍了把 Hexo 博客源码用 Git 从本地备份到 Gitee 和 CODING。
本期,谷月姐要把源码用 GitHub Actions 从 GitHub 备份到 Gitee 和 CODING。
注意:
- 其他基于 Git 的代码托管平台也适用本教程。
- 它同步不了子模块。
1 建立仓库
在 GitHub 上已经有私有仓库了。
在 Gitee 上建立一个私有仓库,HTTP 协议的 URL 是:https://gitee.com/kukmoon/kukmoon_blog.git
。注意:默认分支与 GitHub 上的博客源码仓库的默认分支一致,此处都是 master
。
在 CODING 上建立一个私有仓库,HTTP 协议的 URL 是:https://e.coding.net/kukmoon/blog/source_code.git
。注意:默认分支与 GitHub 上的博客源码仓库的默认分支一致,此处都是 master
。
2 准备令牌
在 Gitee 首页点击右上角头像→设置→左侧导航栏中的安全设置→私人令牌→右上角生成新令牌。权限可以全选。将令牌记录下来。
在 CODING 个人首页点击左侧导航栏中的项目→“谷月姐的博客”(谷月姐把博客源码仓库放到了这个项目里)→左下角项目设置→左侧导航栏中的开发者选项→项目令牌→新建项目令牌,令牌名称随意填,指定一个过期时间,将代码仓库权限设为统一配置所有代码仓库权限,并勾选“读写”(系统默认勾选了“读取”),点击“新建”。系统生成一个项目令牌。
注意:Gitee 生成的令牌只有令牌;CODING 生成的令牌包括一个用户名和一个密码。
3 设置仓库秘密(repo secrets)
要把上一步生成的令牌保存到 GitHub 的博客源码仓库 kukmoon_blog
中,用于向 Gitee 和 CODING 推送源码。
令牌不能明文保存,所以要以仓库秘密(repo secrets)的形式保存。
进入 GitHub,打开博客源码仓库 kukmoon_blog
,点击仓库上方导航栏的 Settings,点击左侧导航栏 Security 下方的 Secrets → Actions,点击右上方的 New repository secret,添加四个 secrets:
GITEE_USER
:在 Gitee 注册的用户名。就是你的 Gitee 个人主页大头像下方以 @ 开头的一串英文。
GITEE_TOKEN
:按照第 2 步在 Gitee 创建的令牌。
CODING_USER
:按照第 2 步在 CODING 创建的项目令牌中的用户名。
CODING_TOKEN
:按照第 2 步在 CODING 创建的项目令牌中的密码。
4 写 GitHub Actions
新建 kukmoon_blog/.github/workflow/deploy.yml
,内容如下[1]:
(如果已经存在此文件,那就把第 11 到 55 行的内容作为一个单独的 job,添加到已存在的 deploy.yml
)
1 |
|
5 图片版权
头图:Banner Image by milkusmaximus from Pixabay
6 参考文献
![](/img/zhi-fu-bao-shou-kuan-ma.png)
![](/img/wei-xin-zan-shang-ma.png)