使用Github Action自动同步仓库到Gitee
背景
作为程序员出生的你,肯定知道备份的重要性。再说现在大环境背景下,美国的政治关系还是比较混乱的,而对于存放在Github上面的项目,也不再是技术自由的国度啦。所以说我们的代码还是有必要进行“双”备份的,接下来就是介绍下,如何使用Github上面的Action功能,将Github上面的代码同步备份到国内的Gitee仓库站点。
准备工作
在一次无意间浏览到了yanglbme的贡献的一个 Git Page Action 代码,经过简单的尝试验证,感觉还是挺好用的,便在自己的博客项目中加入相应的Github Action。大部分的步骤在上面那个站点都有介绍,在此就大概小结一下要注意的点。
准备SSH密钥
在你的本地使用ssh-keygen命令生成用密钥时,千万不要使用密码,在执行ssh-keygen -t rsa -C "youremail@example.com"
命令时,直接不断敲下回车键即可。
Gitee相关
建议Github和Gitee使用同一个密钥,他们的设置方法如下:
1.Github: Settings -> SSH and GPG keys
2.Gitee: 安全设置 -> SSH 公钥
另外还有一个重点就是,一定要关注Gitee的公众号: giteecom,不然后面Github workflow执行就会失败的。
Github加密设置
切换到Github,然后在当前项目下「Settings -> Secrets」中进行添加[Repository secrets],分别为:
GITEE_PASSWORD: Gitee登录的密码 GITEE_RSA_PRIVATE_KEY: 前面生成的SSH密钥的私钥
Git workflow准备
在你的Github的仓库中,添加个.github/workflows/
目录结构,创建个名称为sync-2-gitee.yml
文件,填充如下的文件内容:
|
|
注: 这里对原版本做了个小修改,分成2个job,体现一个workflow的效果。
运行效果
那后续在给Github仓库推送代码时,便会有自动同步代码到Gitee仓库,同时也会重新reload静态页面服务,省去手动干预的流程。
小结
整个方案执行起来还是比较简单的,唯一个可能存在的风险,便是那个密码流程的流程。不过本只是个CI过程,日志中也有脱敏操作,这样也就安全多啦,而且像个人的账户也不会受到特别的关注。
这是首次体验到Github Action的魅力,后续可以持续关注下,这个功能对于一些开源小项目的自动化测试还是有很大的帮助。