Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用Github Action自动同步仓库到Gitee

使用Github Action自动同步仓库到Gitee

作者头像
凡梦星尘
发布于 2024-11-20 09:30:07
发布于 2024-11-20 09:30:07
1910
举报
文章被收录于专栏:Hugo博客Hugo博客

背景

作为程序员出生的你,肯定知道备份的重要性。再说现在大环境背景下,美国的政治关系还是比较混乱的,而对于存放在Github上面的项目,也不再是技术自由的国度啦。所以说我们的代码还是有必要进行“双”备份的,接下来就是介绍下,如何使用Github上面的Action功能,将Github上面的代码同步备份到国内的Gitee仓库站点。

准备工作

在一次无意间浏览到了yanglbme的贡献的一个 Git Page Action 代码,经过简单的尝试验证,感觉还是挺好用的,便在自己的博客项目中加入相应的Github Action。大部分的步骤在上面那个站点都有介绍,在此就大概小结一下要注意的点。

准备SSH密钥

在你的本地使用ssh-keygen命令生成用密钥时,千万不要使用密码,在执行ssh-keygen -t rsa -C "youremail@example.com"命令时,直接不断敲下回车键即可。

gen_ssh_key.png
gen_ssh_key.png

Gitee相关

建议Github和Gitee使用同一个密钥,他们的设置方法如下:

1.Github: Settings -> SSH and GPG keys

add_ssh_key_github.png
add_ssh_key_github.png

2.Gitee: 安全设置 -> SSH 公钥

add_ssh_key_gitee.png
add_ssh_key_gitee.png

另外还有一个重点就是,一定要关注Gitee的公众号: giteecom,不然后面Github workflow执行就会失败的。

wechat_notification.png
wechat_notification.png

Github加密设置

切换到Github,然后在当前项目下「​Settings -> Secrets」中进行添加[Repository secrets],分别为:

GITEE_PASSWORD: Gitee登录的密码 GITEE_RSA_PRIVATE_KEY: 前面生成的SSH密钥的私钥

Git workflow准备

在你的Github的仓库中,添加个.github/workflows/目录结构,创建个名称为sync-2-gitee.yml文件,填充如下的文件内容:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

name: Sync on: push: branches: [main, hugo] jobs: sync-2-gitee: runs-on: ubuntu-latest steps: - name: Sync to Gitee uses: wearerequired/git-mirror-action@master env: # 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }} with: # 注意替换为你的 GitHub 源仓库地址 source-repo: git@github.com:doocs/advanced-java.git # 注意替换为你的 Gitee 目标仓库地址 destination-repo: git@gitee.com:Doocs/advanced-java.git reload-pages: needs: sync-2-gitee runs-on: ubuntu-latest steps: - name: Build Gitee Pages uses: yanglbme/gitee-pages-action@main with: # 注意替换为你的 Gitee 用户名 gitee-username: yanglbme # 注意在 Settings->Secrets 配置 GITEE_PASSWORD gitee-password: ${{ secrets.GITEE_PASSWORD }} # 注意替换为你的 Gitee 仓库,仓库名严格区分大小写,请准确填写,否则会出错 gitee-repo: doocs/advanced-java # 要部署的分支,默认是 master,若是其他分支,则需要指定(指定的分支必须存在) branch: main

注: 这里对原版本做了个小修改,分成2个job,体现一个workflow的效果。

运行效果

那后续在给Github仓库推送代码时,便会有自动同步代码到Gitee仓库,同时也会重新reload静态页面服务,省去手动干预的流程。

02-25-sync-2-gitee-flow-01.png
02-25-sync-2-gitee-flow-01.png

小结

整个方案执行起来还是比较简单的,唯一个可能存在的风险,便是那个密码流程的流程。不过本只是个CI过程,日志中也有脱敏操作,这样也就安全多啦,而且像个人的账户也不会受到特别的关注。

这是首次体验到Github Action的魅力,后续可以持续关注下,这个功能对于一些开源小项目的自动化测试还是有很大的帮助。

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
利用GitHub 的Actions自动同步gitee仓库,并Gitee Pages 自动部署项目
GitHub 的Actions会处理.github下的工作流文件夹workflows。 只要在g项目根目录下创建 .github/workflows/ ,在这个文件夹里再创建Sync.yml文件,填入以下代码。 当产生push操作就会自动同步gitee
鳄鱼儿
2024/05/21
1290
GitHub 代码实时同步 gitee 和 coding
GitHub 作为全世界最大的代码集中地,在上面,我们可以随意地下载或者参与各种著名开源项目和开源开发框架。
章鱼猫先生
2021/12/13
2.5K0
GitHub 代码实时同步 gitee 和 coding
从手动到自动:代码多平台同步的最终秘籍
在日常开发中,我习惯将代码存储在 Github 上。然而,由于网络访问的限制,时常会遇到无法访问的情况。为了确保其他用户能够顺利访问我的代码,我期望在向 Github 提交代码时,能够同步将代码推送到多个代码托管平台,如 Gitee、Gitlab、Bitbucket 等。
小码农薛尧
2025/02/19
1800
从手动到自动:代码多平台同步的最终秘籍
GitHub Actions入门教程:自动化部署静态博客
前天,我使用 GitHub Actions 实现了静态博客的自动化部署,觉得它非常强大,只要你提交到 GitHub,后面的部署完全由 GitHub 自动完成。
somenzz
2021/02/08
1.7K0
GitHub Actions 自动构建 并发布到 NPM
在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY, 内容为私钥文件内容,
yiyun
2022/04/01
8170
GitHub Actions 自动构建 并发布到 NPM
Hexo博客利用GitHub Action自动化部署
CI\CD 即:持续集成(Continuous Integration)、持续交付(Continuous Delivery)、持续部署(Continuous Deployment)。GitHub Actions 是一个持续集成和持续交付 (CI/CD) 平台,可用于自动执行构建、测试和部署管道,换句话说就是通过 Actions 帮助我们去执行 hexo s & hexo g & hexo d 的操作并推到 xxx.github.io 仓库中
777nx
2023/05/02
9410
Hexo博客利用GitHub Action自动化部署
github网站部署
如果你想记录生活、抒发情感、分享见解,这一切都离不开一个可以承载文字的平台,一个独立的、由自己掌控的平台,而 GitHub Pages 就是这么一个平台。
IT小马哥
2024/09/29
2510
github网站部署
如何将 GitHub 仓库代码同步到 Gitee?
将GitHub仓库同步到Gitee(码云)是一个常见的需求,特别是在中国大陆地区,因为Gitee在国内访问速度较快,且与GitHub在某些方面有相似的功能。下面是将GitHub仓库同步到Gitee的步骤:
半夜喝可乐
2025/02/02
1710
如何将 GitHub 仓库代码同步到 Gitee?
利用Github Action实现Github到Gitee的持续同步
github action是github推出的自动化CI/CD的功能,随着2019年11月后github对该功能的全面开放,现在所有的github用户可以直接使用该功能
仙人技术
2021/08/31
7300
利用Github Action实现Github到Gitee的持续同步
[整理]CI持续集成-基于Github Action
参考一: 持续集成是什么? 参考二: 部署GitHub Pages 参考三: Github Actions
前端小鑫同学
2022/12/24
6530
[整理]CI持续集成-基于Github Action
使用Github Actions自动化部署Hexo
使用Github Actions自动化部署之后,可以脱离本地电脑,再也不用担心源码丢失。
GOOPHER
2022/03/30
7040
使用Github Actions自动化部署Hexo
利用 GitHub Action 实现镜像存储库
Github Action 是 Github 推出的一项持续集成服务, 我们可以利用 Github Action 来实现多平台测试代码, 多平台打包, 访问远程服务等等.
xcsoft
2022/03/10
7840
利用GitHub+Actions自动部署Hexo博客
早就听闻GitHub+Actions真相,于是今天便试了下,作为小康博客的第二个平台。至于为什么要自动部署,我在另一篇文章介绍过了。
Dreamy.TZK
2020/04/09
2K2
Github Actions自动化部署 hexo博客
利用 GitHub Actions 实现博客自动发布,将静态博客页面部署到多个服务器上,比如 GitHub Pages、Gitee pages 、云服务器上。本文介绍使用 GitHub Actions 实现将 Hexo 博客自动编译并发布到 GitHub Pages 上。
leader755
2022/03/09
9590
Github Actions自动化部署 hexo博客
使用 GitHub Actions 实现博客自动化部署
如果大家以前是用过静态博客,比如 Hugo、Hexo,可能配置过自动部署,也就是提交代码到源文件分支,自动生成静态文件提交到静态分支。静态博客的部署都是基于文件,目标只是一个 Git 仓库,一切都比较自然。那么如果是喜欢折腾,使用了动态博客呢?这里就涉及到服务器远程登录了。下面介绍一下我使用的方法。
用户4792657
2022/07/06
7000
使用 GitHub Actions 实现博客自动化部署
自动化部署
打开 https://github.com/settings/tokens ,点击右上方 Generate new token,应该要输入你的密码。之后把 Note 起一个名字,比如 github-actions-deploy,然后把 repo 的候选框选中。最后点下面的绿色按钮,跳转页面后获得一个 key,这个 key 只会出现一次,先复制下来,一会要用。
用户4792657
2022/07/06
5910
GitHub Actions 自动部署 Hexo 脚本
网上虽然有很多通过 GitHub Actions 自动部署 Hexo 的教程,但都有各种各样的问题。 主要问题还是 Workflow 脚本没有写正确,比如插件部分。
eallion
2022/12/20
5780
GitHub Actions 自动部署 Hexo 脚本
使用Github Action自动化部署
如果有写过项目的经历,就免不了将代码上传到服务器上,安装依赖,然后输入启动命令的步骤。但是有的项目往往需要经常性的改动,如果还是照着上面的方式进行部署的话。先不说这样操作的效率,操作个几次就想罢工了。并且上面这样操作的往往容易误操作。而 Github Actions 正是该问题的良药。
愧怍
2022/12/27
1.8K0
使用Github Action自动化部署
Hugo NexT主题升级记录
时隔 2 年的时间后,如今又再一次开始折腾自己的博客站点,看来是自己有点太躁动啦😂。在上海疫情期间也真有点压抑的,为了消除这份不安的情绪,决定参考 Hexo NexT 从零开始全面重构 NexT 主题,也在独自奋斗的2个多月断断续续时间里完成主体功能所有移植工作(其实一直想有人参与进来共建,直接跑到人家 Hexo NexT 用户群“呼喊”,但也是没有浪花泛起,只好是自己继续独立前行)。 这不乘着周末的时间,把自己的站点也是升级到最新开发的主题,同时也是为后续想升级旧版本 Hugo NexT 的用户打个样吧
凡梦星尘
2022/08/09
8730
Hugo NexT主题升级记录
一篇教你代码同步 Github 和 Gitee
用 VuePress 搭建了博客并部署到 Github Pages,但由于 Github 的访问问题,我们可以选择把仓库部署到 Gitee 一份,利用 Gitee 的 Pages 服务再生成一份静态网站用于备用。
程序狗
2021/12/27
1.4K0
相关推荐
利用GitHub 的Actions自动同步gitee仓库,并Gitee Pages 自动部署项目
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档