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.
以上是關(guān)于CI/CD工具介紹這一部分,這里是參考了On the usage, co-usage and migration of CI/CD tools: A qualitative analysis這篇文獻。簡單來說,CI/CD工具能夠自動化實現(xiàn)軟件生產(chǎn)過程中的許多活動,包括編譯、構(gòu)建、測試、質(zhì)量保證、依賴和安全管理、創(chuàng)建發(fā)布等工作,從而生產(chǎn)高質(zhì)量的軟件版本。
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個工具的社區(qū)受歡迎度進行比較。通過對stackoverflow上對這幾個工具的討論帖子數(shù)進行間接表示,以資料的完善程度作為參考指標。
之后關(guān)于Jenkins、Travis CI、Drone通過X-Lab實驗室創(chuàng)立的活躍度和影響力兩大指標進行比較。
因為Drone目前已被 Harness 收購,Drone 專注于持續(xù)集成,而 Gitness 添加了源代碼托管,使代碼管理和管道更加緊密地結(jié)合在一起。Gitness 的目標是最終在管道功能方面與Drone完全同等,允許用戶無縫地從 Drone遷移到Gitness,因此這里主要通過gitness來對drone的受歡迎度進行間接表示。
從以上數(shù)據(jù)可以看出幾個工具的受歡迎度,可以大致確定CI/CD工具主要以Jenkins為主,以上僅是通過給出的數(shù)據(jù)分析出的個人意見。
Shortcomings of CI/CD Tools
Jenkins:
配置難度大:Jenkins被多名受訪者報告為難以配置。
速度較慢:一些受訪者提到Jenkins運行速度較慢。
用戶體驗問題:Jenkins被報告為具有過時的用戶界面設(shè)計,導致用戶體驗不佳。
GitLab CI/CD:
工作流程不簡單:GitLab CI/CD被報告為缺乏簡單的工作流程。
用戶界面混亂:GitLab CI/CD的用戶界面被報告為混亂,缺少用于定義工作流程的Web界面。
Travis CI:
速度較慢:TravisCI被多名受訪者報告為運行速度較慢,甚至有受訪者認為其速度對于特定需求仍然太慢。
限制較多:在公司決定改變其對開源項目支持政策后,Travis CI被認為在免費層面上施加了許多限制,例如對構(gòu)建時間、可用內(nèi)存和并行運行器數(shù)量的限制。
Drone:
缺乏知名度:相對于其他工具,Drone的知名度相對較低,這可能導致其在一些方面受到限制。
輕量級但有限制:盡管Drone被認為是一個輕量級工具,但在一些情況下可能會受到可擴展性和功能限制的影響。
Similarities and differences between open-source CI/CD tools
Similarities:
可擴展性:都具有可擴展性,支持使用插件或擴展。
集成與版本控制:都與主流的版本控制系統(tǒng)(如Git)集成,能夠與代碼存儲庫進行無縫交互。
differences:
易用性:Jenkins的配置相對較復雜,需要更多的手動配置。
托管位置:Jenkins需要在本地或自己的服務(wù)器上進行安裝和管理。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通常采用云服務(wù)或本地Runner執(zhí)行工作。
成本:對于小型項目,推薦Travis CI、Drone。
對于大型項目,則需要更多的資源和高級功能, GitLab CI/CD能夠通過付費選項購買更多的資源和高級功能。
License
Jenkins:MIT 許可證
GitLab CI/CD:MIT 許可證
Travis CI: MIT 許可證
Drone:Apache License 2.0 許可證。文章來源:http://www.zghlxwxcb.cn/news/detail-797049.html
MIT 許可證 VS Apache License 2.0
主要區(qū)別:Apache License 2.0要求內(nèi)容變更時需要在變更的文件中明確注明更改,并遵循特定的通告規(guī)則。文章來源地址http://www.zghlxwxcb.cn/news/detail-797049.html
到了這里,關(guān)于開源CI/CD工具調(diào)研的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!