供稿:白铭骢
审校:王雪瑞 (xen0n)

就在今早,GitLab 合入了该平台 CI Runner(CI/CD 代理)的龙架构构建支持,并将龙架构纳入了其二进制发布流程。待 GitLab Runner 发布新版后,使用 GitLab 托管的各类软件项目将可以在龙架构设备上部署持续集成功能。
初识 CI/CD 代理
如今,谈及代码托管平台,一定离不开平台提供的持续集成 (Continuous Integration) 与持续交付 (Continuous Delivery) 服务;负责具体执行平台下发的 CI/CD 任务、并向平台回传结果的组件,我们一般把它叫作 CI 代理或执行器(CI Runner)。本文提及的 GitLab Runner 便是这样一种适用于 GitLab 平台的 CI/CD 服务代理程序。在 CI 方面,它能支持各类开源、私有软件项目,实现对代码提交质量、规范性等方面的持续监控,并在一定程度上辅助维护者完成代码审阅;在 CD 方面,它也能辅助完成源代码、二进制和其他数据的打包发布,甚至自动生成发行注记和更改日志。换言之,GitLab Runner 是开源项目维护者和开发者共享的,抓质量、减负担一样在行的“工友”。

CI/CD 代理是当今开源协作中不可或缺的基础设施。从使用托管平台的开源项目,到仍在利用邮件列表、IRC 等途径联络协作的较为传统的项目,我们都能以不同形式(如 Pipeline/Workflows、自动测试机器人和生成式 AI 助手)看到它们的身影。
此次 GitLab Runner 合入龙架构支持,将能让使用 GitLab 托管项目的各类开源软件项目更方便地测试软件在龙架构上的功能性,也可以让龙架构二进制的自动发布成为现实。同时,这也使自行部署 GitLab 实例的个人、团队用户得以更方便地维护旗下产品的龙架构支持。
初识 GitLab
说到这里,有的读者可能要问了:GitLab 的使用场景多吗?
说起代码托管平台,相信关注开源软件生态的各位读者都不会对 GitHub 陌生。实际上,除了 GitHub 外,世界上还有许多不同代码托管平台,它们各有优势和坚持,也在不同软件项目上找到了自己的一群用户。
在众多国际开源软件社区中,GitLab 是 GitHub 的强劲对手。除了在用户界面、代码管理和社交功能等方面与 GitHub 竞争外,GitLab 也有着几个先天性的独特优势:GitLab 是一个由 GitLab 第一方、本地化运营团队及社区开发者共建的托管平台,参与活跃;比起 GitHub,GitLab 亦支持各类开源社区自建实例,实现多方面的定制化部署。

如今,Debian、FreeDesktop.org、GNOME、KDE 和 Wireshark 等大型国际开源软件项目都在使用自建或官方的 GitLab 实例托管其项目。其中,FreeDesktop.org 组织下的 Mesa、Wayland 和 libinput 项目是如今 Linux 乃至鸿蒙桌面生态的关键组成部分——可以说,GitLab 成为了开源基础设施中不可或缺的支柱之一。
龙架构 CI/CD 代理生态:只欠东风
三周前,社区开发者王雪瑞 (xen0n) 在非官方龙芯开源社区 GitHub 组织的跨社区工单追踪及讨论场所发起了观测帖,记录当前各大代码托管平台的 CI 代理对龙架构的支持情况,并倡议社区开发者们踊跃贡献,推动更多 CI 代理添加龙架构支持。
据该帖记载:得益于王雪瑞、白铭骢、chenguohui 及 driver1998 等人的代码贡献与积极沟通,目前 GitLab 和 Gitea 平台的 CI 代理项目均已正式合入龙架构支持。而包括 GitHub 在内、除 GitCode 这一不支持自建 CI/CD 的平台外,所有已知提供 CI/CD 代理支持的托管平台都已至少收到了龙架构适配补丁!

换言之,目前龙架构 CI/CD 代理生态的建设已基本完成了技术储备,接下来的便是艰苦(且时常漫长)的审阅、修订和商议过程。从观测帖中指出的空缺看来,除代码提交后暂未得到审阅的几个平台外,龙架构 CI/CD 生态还面临着 GitHub Actions Runner 的审阅进程被 .NET 工具链尚未发布龙架构二进制卡住、Gitee Go Runner 上游暂无人员响应、docker.io 镜像仓库的 Docker 官方账号下暂不接纳龙架构系统镜像等非技术问题。
解决这些问题需要社区贡献者们保持耐心、乐观和专业的态度,一步步地推动这一生态的壮大和成熟。放眼长远,龙架构在国内外社区的知名度、接纳度方面还需要大量投入,才能媲美龙芯志在追赶的 x86 和 ARM 两大处理器架构。但我们也有理由相信:在社区同仁一步一个脚印的努力下,龙芯在软硬件生态和公开市场的增长终将逐步实现。