抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

前言

gitee是目前国内做的比较好的公共git托管仓库和开源交流平台,codeup是阿里云的企业git托管,包括一整套devops的解决方案。

这篇文章主要分享一下我最近将代码从gitee迁移到codeup并且将几乎所有的devops都迁移到flow的过程。

为什么?

主要还是想要一个简洁的git仓库管理平台和完善的devops生态系统,codeup早期时候使用过,但是没有这次的感觉这么惊艳,当一个产品让你产生了惊艳的感觉的时候,你可能已经想迫不及待的尝试它了,我也是这样,codeup恰好就是我想要的样子。

迁移过程

迁移过程总的来说分为三大步;

  1. 同步所有的gitee仓库到codeup
  2. 所有的自动部署、自动打包等的流水线迁移
  3. 适配和github的sync

Step1:同步现在所有的git仓库

幸运的是,codeup支持一键同步很多平台的仓库,gitee恰好就被快速而便捷的同步到了codeup中,唯一出现的波澜就是:codeup是默认以代码组来创建仓库的,有点类似gitlab中project的概念,然而作为一个个人开发者,我不需要组别进行管理,这个时候在同步仓库的时候就把仓库的地址修改为不分组就可以了。

同步的过程很顺利,改好组别,一键全选,然后等待同步完成就可以。

Step2:流水线迁移到flow

flow是阿里云云效的一个组成部分,主要就是负责干devops这件事的。如果你不想迁移仓库,只是想单独使用flow作为你的devops工具也是完全可以的,它最多每个月送你5400分钟的构建打包时间,节点还可以使用国内和香港的节点,再也不用为node项目的编译而改一堆的仓库地址还没啥用而发愁了。

flow的配置过程也是相当简单,主要是阿里云提供了一大堆齐全的模板供你使用和查找,原生的文档也还是写的不错,说实话我在用xxx go的时候配置一步一个坑,构建速度还慢的感人。

拿一个最简单的docker镜像来说,我的打包到部署过程就只分为两个步骤:打包,部署。刚好我使用的也是阿里云的镜像仓库,然后直接选择个人仓库,填写一下你dockerfile的位置,其他的flow都给你搞定了,不需要你再写任何代码,效率之高谁用谁知道。

部署就更简单了,flow有全局的环境变量(真正的全局,配置好了,在对应的流水线引用一下,就so easy,在github等都是付费功能),在服务器安装agent,然后直接cd /aaa/ && docker-compose up -d 就部署完成了。不需要去配置服务器的密码什么的,地址都不需要填。

我有98个git仓库,21个流水线任务(多数是一样的,换个参数即可),在不到4小时的时间里,完全迁移完成,主要我的流水线都足够简单,打包,部署仅此而已。

再简单说一下,一个简单的node项目,原来在xxx go打包需要18+分钟,迁移完成后打包+部署耗时2分钟20s,主要是它的免费时长是5400分钟,效率可见一斑。

Step3:codeup 与github 代码双向同步

说双向同步其实有点牵强,真实情况是:大部分仓库从codeup同步到github(主要是私人项目),小部分仓库从github同步到github(主要是开源项目)。

这个过程还是稍微有点坎坷,但是没有让人失望,我之前就用过Yikun/hub-mirror-action来同步我的镜像仓库,但是看完源码发现,它好像不支持我从codeup同步到github,然后我就自己动手丰衣足食,根据他的源码修改了一个适合我自己使用场景的项目dislazy/hub-mirror-action,在此也非常感谢原作者,开源的力量很强大,值得我们有能力的人都尽一下自己的力量,我的action非常简单,可以以ssh的方式同步任何你想互相同步的代码,你可以从github同步到codeup,也可以从codeup同步到github。

我的同步action都放在github的同一个仓库中,新建了几个action,分别是:将github的全量仓库每天定时备份到gitee,同步codeup的单个仓库到github(近实时,通过api触发),同步github的单个仓库到codeup(近实时,通过api触发)。

说到同步,其实更多的是为了备份,发现codeup有一个很人性化的功能,能帮你备份你所有的仓库到阿里云的oss中,存储费用低廉(5年40G才45块钱,还是比较良心的),这样备份就有很多份,能防止任何一个仓库突然出现问题。

总结

从决定迁移,到迁移完成,改一大堆东西,4个小时完成这个项目,有一方面是自己的能力问题,另外一方面我觉得和工具的易用性脱不开关系,就例如我配置xxx go的打包部署一样,一个项目我花了1小时配置,相当痛苦。

写这篇文章的目的纯粹是觉得工具好用,而我刚好用到,能节省我的时间和精力,所以想记录一下其中的过程,这篇文章没有任何代码,原因是因为flow的代码不直接存在仓库中,它是独立的,只是你需要关联仓库而已,如此简单。

其他的就从文档中找把,用之前看一遍文档,比尝试很多次都有用。

其他想说的

最近持续的居家办公生活,让我略感焦虑,说孤独也是很有感触,独立工作还是挺考验自己的自律性,以及工作和生活糅杂在一块的些许不便,然后该适应总是要适应,最近有很多的经历想变成文章记录下来,也因为情绪和工作的原因没有及时的记录下来,以后要多多记录,纯粹记录自己想记录的,给未来的自己看看。

加油吧,皮卡丘。

评论