自建使用 Git 仓库其实很久了,当时的原因很简单就是因为 Github 的私有仓库不是免费的。虽然期间也续费过 Github 会员好多年,但是毕竟还是自建来得吃香,就这样子兜兜转转用下来这个 Gitea 的实例看了下日期其实比我手头上使用的任何数码硬件设备都要久了。

当时的 Gitea 项目还不是很成熟,甚至连 CI 模块都没有需要搭配第三方 CI 平台来使用。而我自己个人也不喜欢 Gitlab 那么臃肿的架构设计,于是 Gitea 和 Drone CI 的搭配就一直这样子沿用了下来。

近期在整理 Git 仓库和代码的时候,顺手又将 Gitea 升级了下,发现已经是 1.21 版本了,还自带了 Gitea Actions。于是从精简系统的角度上考虑,是不是需要将其替换掉 Drone CI?从我调研以及使用的过程看来,答案是肯定的。

那么 Drone CI 有什么不足的地方呢,主要的问题有以下几点:

首先,原本的 Drone CI 是开源项目但是有完整的商业目标,因此在被 Harness 收购了以后开源的版本更新其实并不及时,这就导致界面非常的简陋,同时也和 Getea 的界面相差甚远。其次,Drone CI 是作为 Gitea 的应用来注册的,然后通过 WebHook 的方式来相互通信,这就导致会有不同的问题发生,例如权限、网络延迟以及缓存等等的问题。还有一点就是,随着研发团队人员的增加,很多时候权限的粒度需要精确的控制,Drone CI 至今都无法完成从全局(Global)、组(Organization)、项目(Project)程度的权限控制。

然后替换为 Gitea Actions 以后又将会获得什么好处呢?

首先就是完整的产品体验,至少界面以及权限这块是保持一致的。然后,Gitea Actions 和 Github Actions 保持了配置方面的兼容性,这让我原本需要分别配置两套 CI 的 yaml 一下子工作量就减轻了不少,同时 Github Actions 丰富的生态也可以在 Gitea Actions 上得以延续。

当然,目前还有一点需要注意的是,Gitea 官网上说明 Gitea Actions 还在开发阶段功能方面不是很稳定,可能随时需要更新。所以切换到 Gitea Actions 以后,那么需要随时关注更新版本(但至少从我目前几个项目的配置看来,没有发现大的问题)。

总体来说,Drone CI 任然还是非常优秀的 CI 平台,只是随时时间的推移可能目前来说已经不适合我而已。对于 Drone CI 的情感还是非常的感激的,毕竟陪伴了我很多日夜的开发之路。