开源CI/CD工具调研

Introduction to CI/CD Tools

Definition of CI/CD Tools
Continuous Integration/Continuous Delivery (CI/CD) represents a pivotal practice in supporting collaborative software development, automating numerous activities within the software production process, encompassing compilation, building, testing, quality assurance, dependency and security management, as well as release creation. CI/CD tools serve to assist developers in automating their development workflows, thereby facilitating the expedited production of high-quality software versions (cite:Pooya Rostami Mazrae;Tom Mens;Mehdi Golzadeh;Alexandre Decan.On the usage, co-usage and migration of CI/CD tools: A qualitative analysis[J].Empirical Software Engineering,2023,Vol.28(2): 1).
Definition of CI ( Continuous Integration )
Integrate developer code changes into a shared code base and automate the process of building and testing code.
Definition of CI ( Continuous Integration )

The process of automating the build, test and deployment of code changes to the production environment.

以上是关于CI/CD工具介绍这一部分,这里是参考了On the usage, co-usage and migration of CI/CD tools: A qualitative analysis这篇文献。简单来说,CI/CD工具能够自动化实现软件生产过程中的许多活动,包括编译、构建、测试、质量保证、依赖和安全管理、创建发布等工作,从而生产高质量的软件版本。

Which CI/CD tools are being used?

Comprehensive CI/CD tools:

Jenkins :https://github.com/jenkinsci/jenkins
GitLab CI/CD :https://gitlab.com/gitlab-org/gitlab-ci
Travis CI:https://github.com/travis-ci
Drone:https://github.com/drone/drone

Number of posts:

Jenkins:136664
GitLab CI/CD:3463
Travis CI:5495
Drone:3,684

主要对搜集到4个工具的社区受欢迎度进行比较。通过对stackoverflow上对这几个工具的讨论帖子数进行间接表示,以资料的完善程度作为参考指标。
之后关于Jenkins、Travis CI、Drone通过X-Lab实验室创立的活跃度和影响力两大指标进行比较。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

因为Drone目前已被 Harness 收购,Drone 专注于持续集成,而 Gitness 添加了源代码托管,使代码管理和管道更加紧密地结合在一起。Gitness 的目标是最终在管道功能方面与Drone完全同等,允许用户无缝地从 Drone迁移到Gitness,因此这里主要通过gitness来对drone的受欢迎度进行间接表示。
从以上数据可以看出几个工具的受欢迎度,可以大致确定CI/CD工具主要以Jenkins为主,以上仅是通过给出的数据分析出的个人意见。

Shortcomings of CI/CD Tools

Jenkins:
配置难度大:Jenkins被多名受访者报告为难以配置。
速度较慢:一些受访者提到Jenkins运行速度较慢。
用户体验问题:Jenkins被报告为具有过时的用户界面设计,导致用户体验不佳。
GitLab CI/CD:
工作流程不简单:GitLab CI/CD被报告为缺乏简单的工作流程。
用户界面混乱:GitLab CI/CD的用户界面被报告为混乱,缺少用于定义工作流程的Web界面。
Travis CI:
速度较慢:TravisCI被多名受访者报告为运行速度较慢,甚至有受访者认为其速度对于特定需求仍然太慢。
限制较多:在公司决定改变其对开源项目支持政策后,Travis CI被认为在免费层面上施加了许多限制,例如对构建时间、可用内存和并行运行器数量的限制。
Drone:
缺乏知名度:相对于其他工具,Drone的知名度相对较低,这可能导致其在一些方面受到限制。
轻量级但有限制:尽管Drone被认为是一个轻量级工具,但在一些情况下可能会受到可扩展性和功能限制的影响。

Similarities and differences between open-source CI/CD tools

Similarities:

可扩展性:都具有可扩展性,支持使用插件或扩展。

集成与版本控制:都与主流的版本控制系统(如Git)集成,能够与代码存储库进行无缝交互。

differences:

易用性:Jenkins的配置相对较复杂,需要更多的手动配置。

托管位置:Jenkins需要在本地或自己的服务器上进行安装和管理。GitLab CI/CD作为GitLab的一部分,Travis CI和Drone通常云托管。

语法和配置:Jenkins使用Groovy脚本,GitLab CI/CD、Travis CI使用YAML,Drone使用YAML或Web UI进行配置。

代理模型:Jenkins通常需要配置代理,GitLab CI/CD、Travis CI、Drone通常采用云服务或本地Runner执行工作。

成本:对于小型项目,推荐Travis CI、Drone。
对于大型项目,则需要更多的资源和高级功能, GitLab CI/CD能够通过付费选项购买更多的资源和高级功能。

License

Jenkins:MIT 许可证
GitLab CI/CD:MIT 许可证
Travis CI: MIT 许可证
Drone:Apache License 2.0 许可证。

MIT 许可证 VS Apache License 2.0
主要区别:Apache License 2.0要求内容变更时需要在变更的文件中明确注明更改,并遵循特定的通告规则。

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值