如何使用Github Action同步代码到其他平台
当使用多个基于git的平台时,同步各个平台代码就比较麻烦,这时就可以借助Github Action来优雅的进行自动同步,该教程将介绍如何使用github-action来完成这件事情
1、生成SSH公钥
执行命令:ssh-keygen -t rsa -C "youremail@example.com"
,连续三次回车,id_rsa 为私钥
,id_rsa.pub为公钥
不使用默认SSH参考:生成/添加SSH公钥
2、GitHub项目配置SSH密钥
在Github项目Settings
->Secrets
->Actions
,名称为:GITEE_RSA_PRIVATE_KEY
,值为:上面生成SSH的私钥
3、GitHub配置SSH公钥
在GithubSettings
->SSH and GPG keys
->New SSH key
,名称为:GITEE_RSA_PUBLIC_KEY
,值为:上面生成SSH的公钥
4、Gitee配置SSH公钥
在Gitee设置
->安全设置
->SSH公钥
,标题为:GITEE_RSA_PUBLIC_KEY
,值为:上面生成SSH的公钥
5、GitHub创建Github workflow
在项目根目录新建一个.github/workflows
文件夹,新建一个Sync-to-gitee.yml
文件,填入下面的内容
1 |
|
如果是同步多个项目可以这样填
1 |
|
保存,并把文件推送到github中,这时应该可以在github action看见刚刚的workflow在运行了
如果同步到gitee的github Action出现
remote: error: GE007: Your push would publish a private email address.
这个报错,则在gitee设置
->邮箱管理
, √去掉
后记
如果需要将github的代码同步到gitlab也是类似的方法,则第4步方法改为:
左上角点击头像,Preferences
->SSH Keys
->Add new key
,在Title输入GITEE_RSA_PUBLIC_KEY
,Key输入上面生成SSH的公钥
如果同步到gitlab的action运行报错时可以在项目中的
Settings
->Repository
->Protected branches
右边的Expand
,把Allowed to force push
按钮打开,或者点Unprotect