利用 GitHub Action 实现镜像存储库
  • 累计撰写 120 篇文章
  • 累计收到 1 条评论

利用 GitHub Action 实现镜像存储库

2024-10-19 / 0 评论 / 36 阅读

Github Action

Github Action 是 Github 推出的一项持续集成服务, 我们可以利用 Github Action 来实现多平台测试代码, 多平台打包, 访问远程服务等等.

如 github.c[人]om/soxft[在]/serverS[旅]tatus 我就利用 Github Action 实现了代码Pus[途]h到仓库main[内]分支时, 自动多平台编译并[容]发布 Release.[保]

当然, 这篇文章最主要的还是实现, 当我们push到Github时, 自动将更改同时推送至其他平台.

需求

首先了解一下, 为什么我们需要实现 镜像自己的存储库.

其实很简单, 我们无法确保自己[护]的Github或[人]其他平台账户会不[在]会突然有一天莫名[旅]其妙的消失, 或者 有些人会更喜欢去[途]私有化自己的存储[内]库, 想要同时备份到自[容]己的私有服务器上[保]. 但不希望手动pu[护]sh多次.

这个时候我们可以利用Github Action, 在push到Github的同时, 同步一份到Gitee, Gitlab, Gitea…

如何实现

  1. 通过ssh-keygen或其他方式, 创建一个ssh密钥及公钥文件, 将公钥上传至需要同步到的Git托管平台.
  2. 在需要被同步的仓库中, 在settings > secrets > actions处 新建一个secret, Name为 KEY, Value为刚刚创建的私钥.
  3. 在自己的仓库根目录新建一个.github/workflows/mirror.yml 文件编辑其内容
    name: 'GitHub Actions Mirror'on: [push, delete]jobs:mirror_to_gitee:runs-on: ubuntu-lateststeps:- name: 'Checkout'uses: actions/checkout@v1- name: 'Mirror to gitee'uses: pixta-dev/repository-mirroring-action@v1with:target_repo_url:git@gitee.com:user/repo.git # 远程仓库ssh_private_key:${{ secrets.KEY }} # 密钥 (secret)
     
     
     
     
  4. push代码到仓库, 验证是否有效.

Tips

Gitlab 可能需要在被同步仓库处取消对主分支对protect, 否则可能会失败

收藏

扫描二维码,在手机上阅读

评论一下?

OωO
取消