前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用 GitHub Action 实现镜像存储库

利用 GitHub Action 实现镜像存储库

作者头像
xcsoft
发布2022-03-10 09:09:11
7110
发布2022-03-10 09:09:11
举报
文章被收录于专栏:星辰日记星辰日记

Github Action

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

如 github.com/soxft/serverStatus 我就利用 Github Action 实现了代码Push到仓库main分之时, 自动多平台编译 Golang 源码并发布Release.

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

需求

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

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

这个时候我们可以利用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 文件编辑其内容
代码语言:javascript
复制
name: 'GitHub Actions Mirror'

on: [push, delete]

jobs:
  mirror_to_gitee:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout'
        uses: actions/[email protected]
      - name: 'Mirror to gitee'
        uses: pixta-dev/[email protected]
        with:
          target_repo_url:
            [email protected]:user/repo.git  # 远程仓库
          ssh_private_key:
            ${{ secrets.KEY }}           # 密钥 (secret)
  1. push代码到仓库, 验证是否有效.

Tips

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

本文链接:https://cloud.tencent.com/developer/article/1953745

所有原创文章采用 CC BY-NC-SA 4.0 协议进行许可, 转载请注明原文链接

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Github Action
  • 需求
  • 如何实现
    • Tips
    相关产品与服务
    持续集成
    CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档